kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

「達人が教えるWebパフォーマンスチューニング〜ISUCONから学ぶ〜」を読んだ

webの表示は早いほうがいいためwebパフォーマンスチューニングは知っておくと仕事上いいことが多いはずです。

いままで個人的に対応してきた内容はSQLのチューニングが大半を占めていたため、多視点での知識はかなり乏しいほうです。

実際にボトルネックが発生しないと対応することがないため事前にいろんなケースを経験できることは良いことです。

またISUCON自体は興味があり、過去のサンプルを動かそうと試して断念した過去があるため今回の書籍はかなりありがたかったです。

ISUCONとは「お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル」(twitterより)です。

速度の計測

ISUCONの大前提の高速化の指標。

通常の開発だけだとちゃんとパフォーマンスを測るコマンドを利用する機会はないため、計測方法を知ることができるのはありがたいです。

大量アクセスや重複度等での速度を試すこともできます。

数値として把握できる環境を整えるきっかけにもなり、会社とかだと成果として数値が出せるようになりそうです。

DB,ミドルウェアの知識

プログラミングばかりだとミドルウェア周りの詳しい部分まで把握することが少ないですが、実際にアプリの動作や速度に影響が出てくると把握する価値が高くなりますね。

ボトルネックから改善まで書籍に書いてあるので、実際に試すことができます。

最近は運用時にいろいろなサービスと組み合わせるためプログラムが中心になることが多く、サーバー周りまで理解する人は周りには少ない印象です。

サーバーやミドルウェアが影響出ているのを見ると、webサービスは全体的な知識なんだと感じる部分です。

個人的に視覚でみれる情報で違いがでるのが好きでweb開発してる際の表示がちゃんと変わるのが楽しいので、速度の違いが数値でみれるのはやっぱり楽しいです。

本当のISUCONだとどれだけ速度を改善できるかのbestを求めるけど、少しでも改善するだけの知識なら気軽に色々と試しながら作業できるのでたまにやりたいです。

サンプルがローカル環境で動かせる

dockerが必要になりますが、ローカル環境で試せました。

ISUCONの過去問は試せるようにgithubに上がってたりしますが、ちゃんと環境が構築できた試しがなかったため本書籍で試せたのは進歩でした。自分の知識や環境も影響してますが、書籍は情報量が多いですね。(たぶんISUCONの古いの試そうとしてたからvagrantあたりでつまづいてた記憶がある)

ISUCONの過去問にチャレンジするためのシンプルな環境構築 : ISUCON公式Blog

ただベンチマーカーは動かせなかった。途中で止まってるからメモリ等の割り当てとかかな。

実際に動かせる本を読むこと

動作を試せる本は知らないアプリがよく出てくるので、アプリを知るきっかけになってます。

便利なアプリひとつで開発ってかなり効率が変わることがあるので、日々のべんきょうは重要ですね。

去年はVSCodeの「REST Client」の発見が一番良かった。

個人的にISUCONのサンプル試せたことがなかったので買って良かったです。