2024.12.24
ビジネスが急速に変化する現代は「OODAサイクル」と親和性が高い 流通卸売業界を取り巻く5つの課題と打開策
リンクをコピー
記事をブックマーク
草野翔氏(以下、草野):質問が来ていた。「ある程度チューニングできたあとのISUCON特有のスコアを出すところを聞きたいです」。ISUCON特有のスコア、最近の問題でありますか?
藤原俊一郎氏(以下、藤原):特有のというか、実務でやらないのはマスタデータのオンメモリキャッシュとかですよね。
草野:あるわー。
藤原:ISUCONだと1分しかないから、ユーザーがベンチ中に増えないとか、〇〇のデータはベンチ中に変わらないみたいなことが明確にわかります。オンメモリにキャッシュすることは実務では絶対にやりませんが。
ISUCONだと最初にそれをやってもしょうがないので最初はやりませんが、終盤でもうひと押しという時はやりますね。競技的な要素が強すぎてあまり好きではありませんが、背に腹は代えられないので。
草野:ISUCON特有のやつはあと何かあるかな。
金子達哉氏(以下、金子):MySQLまわりだとbinlogの無効とか。あとはわりと安全じゃない設定にするとか。
藤原:fsyncをやめるやつですよね
馬場俊彰氏(以下、馬場):アクセスログを出さないとかね。
藤原:アクセスログを出さないのは最後の最後ですよね。
金子達哉氏(以下、金子):本当に最後の最後です。
藤原:集計できなくなっちゃうので。
金子:残り10分とかにやります。
草野:でもログをとめてそんなにスコアが上がったことがないから、あまり信用していないんだよね。安心のためのおまじないぐらいの気持ちしかない。
藤原:デバッグログを出しているやつは真っ先に止めます。ミドルウェアで無駄に大量に出しているパターンがあって、それは真っ先に止めますが、私(たちのチーム)は、アクセスログは最後までオンかもしれないですね。
草野:止める時は相当詰まった時だな。相当やりきった感が出ていないと、僕(のチーム)も止めない気がします
馬場:私(たちのチーム)も最後にやることリストには入っていますが、本当に最後ですよね。
藤原:ISUCON特有、あとは何だろう。複数台構成を空いているホストにじわじわと振るみたいな。
例えば3台(サーバーが)使えて、(その中に)MySQLが1台(ある)じゃないですか。3台の中で、リソースを割り振りを「こいつはnginxがいて、こいつはアプリケーションサーバーがいるんだけど、ここがちょっと余っているからこっちには何パーセントバランスしよう」みたいなことをして、3台ギリギリにCPUを使い切るみたいなことをやることはあります。
草野:他にもありますか?
金子:他では絶対にやらないなと思ったのは、3台構成だった時にMySQLを2台立てて、レプリケーションを使わずにアプリケーション側でgoroutineを使って、2つのデータベースに対して書き込みして、両方でreadを増やすようなことをやったことがあって。普通に動きますが絶対にやらないなと思いながらコードを書きました。
草野:再起動試験はメチャクチャがんばるな。
藤原:本番でもリリース前に再起動して動かないかどうかぐらいは確認するけど(笑)。
草野:ISUCON特有は何かあるかな。
中西建登氏(以下、中西):それでいうとISUCON10のテスト試験で解いたと思うんですが、2つのテーブルがあって。そのテーブルたちはjoinしていないから片方はサーバーAでMySQLを流して、もう片方はサーバーBからMySQLに置いて、メチャクチャBの性能を稼ぐようなことはありましたね。
金子:それが僕がさっき言ったやつですね。予選でそれをやった。
中西:なるほど。
金子:それはgoroutineでやりました。
草野:メチャクチャやった。
馬場:マイクロサービスみたいなものなので、一周回ってやっているかもしれない。
草野:ISUCON特有というと変ですが、やれることがなくなった気がしたら必ずマニュアルを読み直すのをやっていて。先ほど「アプリケーション要件を変えたい」という話があったじゃないですか。「根本的に変えたい」みたいな。ドキュメントをしっかり読むと「ここは外部サービスにバルクリクエストしてもいい」みたいなことがしれっと書いてあって。でもそれはアプリケーション内から使われてない。
ISUCONの中で、コードだけを読んでいても実はわからない情報が、意外とドキュメントに書いてある時があります。ドキュメントを読まない勢では一生気付けないものとか、流し読み勢は一生気付けないものもあるので、もう1回読み直す。わりと気軽な気持ちで読み返しています。
(そうすると)意外とそういうことが書いてある。「何秒キャッシュしていい」みたいなのが書いてあるなら「やっていいんだな」と思ってやったりとかはします。
ISUCON9の本選の新幹線予約みたいなやつで、これは騙されたというかピットフォールにハマっただけなんだけど。予約の残りの「残席数があります」「ありません」「残り少ないです」みたいなものを〇・△・×で出すところで、「高負荷時は間違っていてもいい」と書いてあって。
チーム内で「高負荷時っていつだ?」みたいな話になって、「ISUCONでベンチで負荷がかかっているんだからいつでも高負荷時だろ」みたいことがあって、ずっと〇だけ返し続けるパッチを入れたら速攻で怒られて、ぜんぜんダメでした。
(一同笑)
草野:リバートするとか。「5秒で入れられるから1回やって、これでもしよくなったら計算がまるっといらなくなるし、とりあえず1回やってみようぜ」みたいなことはけっこうやりがちです。とりあえず気軽な気持ちで入れて、ベンチに怒られないか試してみることはやりがちです。
ISUCONだけのテクニックは、ISUCON本を見ていると、ISUCONだけのテクニック運用がうようよ出てきます。
草野:いったんこれで来ている質問にはだいたい答え切れた気がしています。いろいろなことをやりながら、いろいろやってほしいなという気持ちで、みんなにISUCONに参加してほしいなとか、ISUCONに参加せずとも、ISUCON本を読んで、ISUCONという競技から学べることはたくさんあったと思っています。
今並んでいるこの著者6人も、きっとISUCONのおかげで業務で幸せになって勝ちまくり・モテまくりみたいなことが起きているはずなので。というか、みなさんISUCONで学んだことで勝ちまくりみたいなことはありました? 僕はちなみにマジでありました。
金子:僕は前から言っていますが、エンジニアとして育ててもらったのは、やはりISUCONコミュニティだなと思っています。
藤原:僕もですね。
金子:ISUCONがなかったら、やはりエンジニアとして成長できなかったと僕は思っています。
草野:「ISUCONをやるとPR TIMESのCTOになれる」みたいな話になってきましたけど大丈夫ですか?
(一同笑)
金子:まぁいいんじゃないですか(笑)。じゃあそういうことで(笑)。
草野:やばいなぁ(笑)。誇大広告(だと誤解されないか)とか大丈夫かな? CTOになれるかはまた別な気がしますが、本当にエンジニアとして成長できるイベントだと思うし、僕はISUCONに参加した時にわからないことがけっこうハッキリしたので。
わからないことがハッキリすると勉強のしようがあって楽しい。毎年(ISUCONに)出たり関わったりする中で「これはぜんぜんわからんわ」みたいなのが毎年1個ぐらいあるんですよ。
ISUCON11の時だと、PDFを生成したりzipを生成することを速くする方法がぜんぜん意味がわからなくて、「ぜんぜんわからないな」と思っていましたが、いっぱい方法があることを勉強したり。そういうことがけっこうあったので、毎年わからないことが増えていく、いいイベントだと思っています。
そういう意味で「わからないことは何だろうな」と思いながら本を読んでもらったり、付録A・Bを読んでもらったり、全9章を読んでもらったりとかすると、みなさんの実務の役にも、人生の勉強にも役に立つのかなと思っています。ぜひぜひ本を買ったりISUCONに参加したりして、一緒に遊んでいただけるとうれしいなと思っています。
ちょうど2時間ぐらいですかね。みんなお付き合いいただきありがとうございました。ということでみなさんお疲れ様でした。拍手!
(一同拍手)
馬場:終わったら拍手(笑)。
草野:始まる時も拍手(笑)。一応ね、今日のライブが始まった瞬間みんな拍手しましたよ。もうWebですが、続きはWebでという話で。まだやるんですよ。@isucon_officialというTwitterアカウントのスペースでやるらしいので、著者のみなさんはがんばって携帯にうまく音声を入れる方法を今から勉強してください。「最速いい感じ音声入力コンテスト」が今から始まるので、みなさん続きはWebでよろしくお願いします。今日はお付き合いいただきありがとうございました。
一同:ありがとうございました。
草野:次のISUCONで会いましょう。
(一同笑)
関連タグ:
ISUCONの達人たちがパフォーマンスチューニングを語る 『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』
ISUCONという“戦いの土俵”に立つためのものから珍しい内容まで ISUCON本各章を担当の達人が語る
ISUCONで優勝する方法は? 優勝経験者が語る、チームメンバーと情報共有の重要性
「ベンチマーカーの解像度が高くなると点数はゴリゴリ上がる」 ISUCON経験者が語る、“中毒性”のある動き方
ボトルネックを倒さないと、予選の上位には食い込めない 業務にも活用できる、上位20パーセントに入る方法
ISUCONの始まりは“怒り”がきっかけ 運営実行委員会・941氏が語る、ISUCONの歴史
「使いやすさ」「成果より進捗」「いじりやすいこと」 ISUCONの達人たちが重要視しているパフォーマンス
「『何か1問解いてみる』はメチャクチャおすすめ」 ISUCON本の著者が語る、初心者に向けたアドバイス
ISUCON当日は「ふだんやってないことはやらない」がおすすめ 達人たちが語る、食べ物・飲み物の持参状況
「ISUCONがなかったら、エンジニアとして成長できなかった」 達人たちが語る、実務ではやらない“ISUCONならでは”の技術
2025.01.21
言われたことしかやらないタイプの6つの言動 メンバーが自主的に動き出すリーダーのマインドセット
2025.01.20
組織で評価されない「自分でやったほうが早い病」の人 マネジメント層に求められる「部下を動かす力」の鍛え方
2025.01.23
コミュ力の高い人が無自覚にやっている話し方5選 心を開かない相手の本音を引き出す相づちと質問のテクニック
2025.01.16
社内プレゼンは時間のムダ パワポ資料のプロが重視する、「ペライチ資料」で意見を通すこと
2025.01.22
部下に言いづらいことを伝える時のリーダーの心得 お願いを快く引き受けてもらう秘訣
2025.01.22
1on1では「業務進捗」ではなく「業務不安」を話すのがカギ 上司・部下は何をどう話せばいい?対話の悩みを解消するには
2025.01.14
目標がなく悩む若手、育成を放棄する管理職… 社員をやる気にさせる「等級制度」を作るための第一歩
2025.01.21
今までの1on1は「上司のための時間」になりがちだった “ただの面談”で終わらせない、部下との対話を深めるポイント
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.22
「やったもん負け」の現場で何が起きている? 大企業の新規事業が成果を出すための条件とは