2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
草野翔氏(以下、草野):質問が来ていた。「ある程度チューニングできたあとの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ならでは”の技術
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05