2024.12.24
ビジネスが急速に変化する現代は「OODAサイクル」と親和性が高い 流通卸売業界を取り巻く5つの課題と打開策
リンクをコピー
記事をブックマーク
藤原俊一郎氏(以下、藤原):Twitterで「優勝じゃなくて予選の上位20パーセントに入る方法が知りたい」というものが流れています。
草野翔氏(以下、草野):そうなんですよね。
藤原:優勝は何百分の1なので、そんなに多い数字ではない。
草野:でも上位20パーセントも同じことなんだよね。
藤原:20パーセントだと、チームワークとかではなくて、1人でもいきやすいじゃないですか。
草野:怪力で。
藤原:技術的なことでまだいけそうじゃないですかね。予選通過はちょっとキツイですが。20パーセント、上位100位ぐらいであれば、1人でもスコアを出せると思うんですよね。
草野:技術的なことで言うと、やらないことが増える度に点数が上がりますね。見つけたものを端からやらない。参考実装を開いた瞬間に、観光名所が出てきたりするじゃないですか。とても長いSQLクエリが出てきて、「これは絶対にやばい」ということが一瞬でわかるんだけど、その一瞬でわかったものをやらずに、ちゃんとモニタリングをして順番に効くことをしていけるか。
もしくは、初手、直すべきところがわかりきっていところは何も考えずに手が動くとか。「何をやらないか」のほうが、点に響く気がします。そういう感じはないですか?
金子達哉氏(以下、金子):付録Aにありましたよね。
草野:付録Aにそういうことが書いてあるんだけれど。
(一同笑)
金子:付録Aみたいな解き方ができると理想的だよなと思います。
藤原:順番にちゃんと重いところから倒す、みたいな感じですよね。
草野:そうそう。重いところを倒さないと次の重いところがわからないんですよね。
藤原:そうですよね。付録Aのネタばらし的な話をちょっとすると、付録Aの範囲だと最初に650点から30万点まで行くんですが、その中で、最初に追加したインデックスをDROP INDEXすると1万点になっちゃうということがあって。とにかくボトルネックのインデックスを倒さないと、いくら他のことをやってもぜんぜん上がらないという、すごくいい実例になっています。
草野:へー。
藤原:「ボトルネック以外を倒すと上がりませんよ」ということは何度でも言いたい。
草野:メチャクチャいい話。
馬場俊彰氏(以下、馬場):確かに。
藤原:ボトルネックというものは「他のアプリケーションではこれが効いたんだよな」みたいなやつをやっても効かないんですよ。
草野:あー。
藤原:ISUCONに限らず本当に見たほうがいいです。これは業務のパフォーマンスチューニングでもなんでもそうですが、「前にこれが効いたはずだ」ということをいくらがんばっても、本当に重いところじゃないと何も意味がなくて、時間だけが無駄になるので。
金子:最近のISUCONはN+1が多すぎて、時間内で絶対に全部直しきれないんですよね。だから、本当にボトルネックになっているところをちゃんと見つけないと、やはり上位には食い込めないんですよね。
藤原:これはISUCONに限らず、ISUCONはなおさら時間が厳しいからそうなんだけど、業務では「チューニングしようと思っても、一番ヤバイところから直さないと意味ないですよ」ということは、本を通して言いたいですね。
馬場:ということを1章に滔々と書いてあります。
(一同笑)
草野:すごい! すばらしい! みんな販促がうまいね。
藤原:1章にも書いてあるし、あちこちにも書いていますね。
馬場:そうなんですよね。業務でも使うから本に残したいし、みんなに読んでほしいんですよね。
草野:そうですね。それはメチャクチャそう思います。
草野:僕は白金動物園の飛び道具担当で、ワンチャン「お前、今すぐこの問題用のリバースプロキシを書け」みたいなことを言われる立場にあるんですけれど。そういう人が1人チームにいると確かに便利な時はありますが、妥当なことができないと次の問題に役に立たないんですよね。
(それは)その年の問題にたまたま合致するかしないか博打の話になってきて、たぶん博打だと、上位20パーセントという、予選を突破する枠にちゃんと入り続けるのはかなり厳しくて。僕のチームの本選出場率が50パーセントなのは、たぶんそういう理由です。
正直、博打がハマるとうまく行くみたいなチームではあるので、でもそれがうまくちゃんと最適化されて、「まともなことをやるぞ」という空気になってISUCON9の優勝があったという感じがしています。
ちゃんとまとまった勉強をしておくことは、すごく効く気がします。何の問題にでも役に立つような、まともなことをちゃんとやっておくのが僕の中ではすごい効く気がしています。
中西建登氏(以下、中西):でも博打を打ってうまくいくようなパターンがあるということは、他の2人がまともなことをやって、ちゃんと博打が効くようなところまでは到達しているということでもあるので、それは前提ですよね。
草野:大前提はそうですね。
草野:(コメント欄より)先日(2022年5月25日〜26日)のAWSサミットの「AWSのSAがISUCONに挑戦」(というセッション)。みなさん見ましたか?
藤原:見ましたね。
草野:僕は見ました。あれはすごく楽しかったです。「というセッションをおもしろく見ていたのですが、達人のみなさんの感想を聞いてみたいです」。じゃあ見た人に1つずつ聞いていきますか。藤原さんはどうでしたか?
藤原:そうですね。あれはけっこう事前準備をしていて、事前準備をした上でデプロイするのが30分の間だったのですが、何を準備したのかはもうちょっと知りたいですね。何をしたのかがわからないでスコアが上がっても、なんというか「そうだね」としか言えなくて(笑)。おもしろかったんですけど、あとでブログでやったことを全部大公開してほしいなと思いました。
草野:馬場さんは見ました?
馬場:見ました。
草野:どうでした?
馬場:マネージドサービスが使えたらいいと思います。予選とかは小さいインスタンスでみんながんばっているので。「何千円とか何万円とか、自分で払うから」と思ったことは何度もあります。
(一同笑)
草野:catatsuyさんはどうでした? 見ました?
金子:見ました。すごくおもしろかったですが、藤原さんと同じで、何をやったかはあまり説明されていなかったので、何をやったのかちゃんと見たいのと、あとはそのうち「優勝チームが実はAIでした」みたいな未来がありそうだなと思いました。
草野:GitHub CopilotにISUCONをクリアされる未来。
金子:ありそうだなと思って。
草野:みんなのコミットログが毎年上がっているので、Copilot的にはISUCONの倒し方の学習データが増えているはずなんですけどね(笑)。kazeburoさんは見ました?
長野雅広氏(以下、長野):自分は見ていないですね。
草野:なるほど。じゃあログを見たあとに感想ブログをお待ちしています。
長野:はい。
(一同笑)
草野:waitaさん見ました?
中西:はい。見ました。みなさんが言ったことで、そのとおりかなという気はします。やはり初手Auroraでぶち込むのは強いよなと思いつつ、ただ、確かそれだけでは優勝スコアにいっていないんですよね。
草野:行ってないですね。確か……あれ、いくつだったっけ?
中西:30万点ぐらいかな?
藤原:予選トップが100万点を超えているので。
中西:そうなると、やっぱりそうじゃないところにもISUCONのおもしろみはあるんだなというのがすごくおもしろかったです。
草野:ありがとうございます。僕もちゃんと見ましたが、僕はみなさんと違って、いくらかかったか教えてほしいですね。
(一同笑)
草野:つまり、我々の技術力によっていくらのコストが浮いているのかが知りたいです。「初手Auroraで巨大なものを入れています」みたいなことが書いてあったけれど「そのAuroraはプログラミング次第では使わなくていいわけなので、大変コストに効いているのでは」とか。
その資料がAWS公式から出てきたら「パフォーマンスチューニングをしましょうよ」と言いやすくなるし、うれしいんだけどなと思いながら見つめていました。いくらかかったかあとで公開してほしいなと思っています。
藤原:そうですね。先ほどベンチマーカーの話があったので言いますが、ベンチマーカーはレイテンシーが長いと、次のリクエストが送れないので回転しないじゃないですか。なので、何もしないでAuroraの大きいインスタンスを使っても、別にレイテンシーは変わらないので、例えばインデックスがなかったら、並列には耐えられるけど、1発の速さは遅いじゃないですか。
だから、ベンチマーカーはそんなに上がらないんですよね。大きいAuroraでインデックスを使えないクエリのフルスキャンが速くなるわけじゃないから、やはりお金だけでは絶対解決できないなという感じはします。
草野:とは言え、本選でお金を積んで使えるなら積みますけどね。
(一同笑)
金子:N+1クエリとかは速くなるから最高ですね。
(次回に続く)
関連タグ:
ISUCONの達人たちがパフォーマンスチューニングを語る 『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』
ISUCONという“戦いの土俵”に立つためのものから珍しい内容まで ISUCON本各章を担当の達人が語る
ISUCONで優勝する方法は? 優勝経験者が語る、チームメンバーと情報共有の重要性
「ベンチマーカーの解像度が高くなると点数はゴリゴリ上がる」 ISUCON経験者が語る、“中毒性”のある動き方
ボトルネックを倒さないと、予選の上位には食い込めない 業務にも活用できる、上位20パーセントに入る方法
ISUCONの始まりは“怒り”がきっかけ 運営実行委員会・941氏が語る、ISUCONの歴史
「使いやすさ」「成果より進捗」「いじりやすいこと」 ISUCONの達人たちが重要視しているパフォーマンス
「『何か1問解いてみる』はメチャクチャおすすめ」 ISUCON本の著者が語る、初心者に向けたアドバイス
ISUCON当日は「ふだんやってないことはやらない」がおすすめ 達人たちが語る、食べ物・飲み物の持参状況
「ISUCONがなかったら、エンジニアとして成長できなかった」 達人たちが語る、実務ではやらない“ISUCONならでは”の技術
2025.01.09
マッキンゼーのマネージャーが「資料を作る前」に準備する すべてのアウトプットを支える論理的なフレームワーク
2025.01.08
職場にいる「嫌われた上司」がたどる末路 よくあるダメな嫌われ方・良い嫌われ方の違いとは
2025.01.07
資料は3日前に完成 「伝え方」で差がつく、マッキンゼー流プレゼン準備術
2025.01.10
プレゼンで突っ込まれそうなポイントの事前準備法 マッキンゼー流、顧客や上司の「意思決定」を加速させる工夫
2025.01.06
上司からの「ふわっとした指示」に対し、デキる人がやっていること 4タイプ別で見る、仕事を依頼された時に重要なスタンス
2025.01.08
どんなに説明しても話が伝わらない“マトリョーシカ現象”とは? マッキンゼー流、メッセージが明確になる構造的アプローチ
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.09
記憶力に自信がない人におすすめな「メモ」の取り方 無理に覚えようとせず、精神的にも楽になる仕事術
2025.01.09
職場に必要なのは「仲良し集団」ではなく「対立」 メンバーのやる気を引き出すチームビルディング理論
2025.01.10
職場にいる「できる上司」と「できない上司」の違いとは 優秀な人が辞めることも…マネジメントのNGパターン