日記っぽいのを書きます。本戦初出場初failしてきた予選の様子はこちらというわけでISUCONにチーム学生自治として出場してきた。大体何をやったかはチームメイトのnona7くんが書いていたけど、一応書いておきます。開始前にドクペとお茶を飲んだ影響かとにかくトイレに行く回数が多かった言語についてはスムーズにRubyを使うことにしたけど、NodeJS実装もあったしちょっとは見ても良かった気がする。導入して計測する作戦で始めたが、セグフォして辛い感じだった。/data辺りで色々httpが走ってたりするからその辺りで何かあるんじゃないかとか適当に思ったけど、とりあえず諦めてまぁ/dataが遅いのだろうという気分になるRails生まれMongoDB育ちなので、PostgreSQLを見て困る。queryでも見るかと思ったけど、人生初psqlだったので色々手こずる。問題からもある程度は自明だったのだけど、特に顕著に遅いqueryはないという感じのことが分かる。parallelというgemをuiuが入れたりして、この辺りでスコアが2200点になる*1。1台のnginxでアクセスを受けてそれを自身も含めて3台のアプリケーションサーバに振り分けるようにする。あとはworker_process数の調整をする。この辺で25000点くらいになるもここからは何も出来なくてスコアが変わらなくなる。何かキャッシュすれば変わるのではという気分だったものの、住所系はそんなに支配的ではなくて、天気APIが/dataのリクエストタイムの大方を占めていたのでなんとかしたいということになる支配的ではなかったものの、とりあえず手を出すという意味でも郵便番号→住所をキャッシュするとかはやっておけば良かった。Redisのインストールしたのに...天気APIをなんとかしたいキャッシュするかと思うも意外と変わるということで考え始める実はheaderを見てなんとか出来ないかと思って、Content-Lengthを見てみたりLast-modifiedがあるのも気付いてて、nonaと天気が3秒で変わるから比較して3秒以上立ってなかったら同じのを返すとかすれば良いのではとか言っていたのでその時にIf-modified-sinceに気付けていればなぁという感じトイレに行く途中でhttpsなアクセスポイントが不自然だからhttp2にしたらなんかなったりしないかなと思ったけど、トイレから帰ってくる時に脳内でいやまさかなぁと思ったけど、それもちょっと試したら良かった...まぁ何はともあれ最後の3時間くらいは何も出来なくて、ラストで再起動チェックをしたつもりだったけど、そのあとにinit.d周りをを弄ったりしてから再起動チェックを指定なかったのでfailしてしまった・・・うううう最後はとにかく諦めムードで(学生枠一位と6万点差あった)雑な銀の弾丸を色々考えてたけど、そんなことしてる暇があれば再起動テストをするべきだったと反省してる。31全体的にもっと色々手を動かして試していればもう少しスコアよく出来てたなという感じで反省しかない。次出るとこがあればその辺はもっと意識していきたい。対応のブラウザで見てください。はてなブログPro京都、学生、エンジニア。漫画を読んだりインターネットをしたり。好きな飲み物はビール。})();はてなブログをはじめよう!Pasta-Kさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。