BLOG開発関係のメモこの広告は、90日以上更新していないブログに表示しています。golangisuconisucon4予選やった。言語は、せっかくの機会なので勉強して、Goで。最終的に、26631点まで伸ばして、2日目の17位で終わった。予選通過ならず、敗退してしまった。やったネットにころがってる、有り難い記事を読んでた(LINEの夏期講習完全版とか、関係者のまとめとか)isuconを良い機会に、golangの勉強した参加メンバーの役割分担した。午後にTODOを効果順につぶしていく。過去の問題から、こんなイメージをしていたfrontvarnichかnginxでcache※今時のサイトは画像とか絶対あるし、frontのcache周りが重要になるような気がしていた。gorilla)の想定で、なんとなく心の奥底でmartiniかgin出るよ〜と言われてる気がしていたが、封じ込めていた。memcached※KVSはmemcachedだろうと思ってた。これも心の奥底ではそろそろRedis出るよーと言われてる気がしたが、封じ込めてた。KVS入ってなくて(これは独自で入れた方が良かったが、結局、私たちは入れなかった)goはmartiniだった。(今後、参考にさせてもらいます。)あと、front周りは静的fileが非常に少なかった。これが分かっていた時点で、早く、皆でbackendに注力するべきだったなー。初めからnginxだった。apacheをnginxにするだけでscore稼ぎみたいな事は出来なかった。当日の朝score算出プログラムを読もうとしたが、見当たらない。binaryだけ?っぽく断念。supervisordでGoに切り替えるのだが、どうやら、うまくいかない。何だろうと思ったら、元々立ち上がってたrubyのunicornがずっと立ち上がりっぱなしだった。停止に失敗していたなんか、supervisordのrestartの動きが怪しい。原因はともあれ、もうruby要らないので、killして、Goを立ち上げ直した。予選終わった後に、Q&A見てみると同じくsupervisordがruby終わらせてくれてなくて困ってる人いた。nginxの設定空っぽだったので、とりあえず最低限の設定したworker_procesとかworker_connectionとかgzipとかepolとかsendfileとかそういうヤツ/etc/my.cnfも基本的な設定を実施。listしか、まともに使ってないな、そういえば。uri:/(もしかしたら、違うログだったかもしれないが)確か、これは、nginxがhost書き換えていたとかで、アプリ側で許可してるIPから外れてしまってエラーになっていたヤツだったと思う。nginxの設定を見直して解決ここら辺でお昼くらいになってた。AMIを元につくった自分のinstanceで作業。うまくいけば、本番にも同じ適用この適用の時は一部gitbucket使ってたんだけど、んーー。file少なく、gzipかける前後のsize差がないのに、変換costかかるからscore下がってるっぽかった。index周りをお願いした結局、このindexが一番効いて、一気に1万の台に上がったなんというか、逆にあまり決めないで臨機応変な体制にしても良かったかもしれない。(ただ、そうすると、色々ぶつかりそうだったり、漏れがあったり...どうだろう。1問題(ORMでよくあるLoopで毎回SQL発行するやつ)も見事にあったので、おっしゃ俺やるぜ!と思って頑張ったまあ、sqlは一個にまとめてprogramに適用したが、scoreに反映されず、あれ、と思ったらそもそも、このsqlを使っているのは、ルール上scoreに換算されない所だった!!!見事に1時間くらい無駄にしてしまった><うーーん。codeに入れずに、score算出プログラム側でやってほしかったなーと思ったりそもそも俺がルールよくみないのがいけないですよね。これ実際の現場でもよくありますよね。