ISUCON11の予選に参加した話 - 真夜中の色彩

真夜中の色彩

真夜中の雰囲気が好きなプログラマのブログ

ISUCON11の予選に参加した話

 ISUCON11の予選に参加したよ。スコアは全然振るわなかったし、とても右往左往しちゃったけど、でも楽しかった!

 この「楽しかった!」がとても大事で、まだ技術で楽しめている自分がいて安心した。よかった。

 感想をまとめる。あまり技術ネタはないのでご了承ください。

前日譚

 とうとう、ISUCON参加に踏み切った。元々、サーバサイドやってなかったりしたし、サーバサイドの仕事をするようになっても一緒に参加する相手もいないしな~という感じで、ついったったー達(主に元高専クラスタ的な面々)が参加/運営しているのは知りつつ横目で見ていた感じだった。

 色々な要因が重なって、やるぞ!!!となったのであった。

 一緒に参加するのは会社の同僚?先輩?とです。2人ですのだ!

 基本的にこれまで現会社の人とはプライベートではノータッチの姿勢でしたが、まぁもういいかと思い切りました。色々と心境の変化があったのです。
 自分のGithubアカウント(全然使ってなかった)やDiscordアカウント(めっちゃ使っている)がバレちゃったけど、まぁ知られてもいいや。ググればblogあたりまでは到達可能ですし、blogも読まれてもおっけーという気持ちで書いております。趣味は大体バレてるだろうし、もういいや。おっけーおっけー!と開き直りました。

 

当日

 使う実装はPerl。なんだかんだ長らく読んできた言語なのでね! 読んで理解して修正するならPerlだなと。plackも使っていたからざっくりわかるぞ! 他の実装もそうかもしれないけれど、ソースとても読みやすかった。Perl実装者さん、ありがとう。

 でも、nginxわからなかった。ずっとApache使ってた。あと、実際に作業してたのって2年くらい前だし色々忘れてる。てへ。ソース修正して反映させる方法を理解するまでに時間が掛かっちゃいました。

sudo /etc/init.d/mysql restart
sudo /etc/init.d/nginx restart
sudo systemctl restart isucondition.perl

 あと、アプリのログがどこに出てるのか全然わからんーと探すのにも時間かかっちゃった。/var/log/syslogに出てた。

 gitでどうファイル管理するかを考えていかなかったので、結局gitでバージョン管理できなかったね…。大反省。もっと予習しておけば絶対潰せたところだったけど、やってないことはできないのその通りだわ…。 

 

チームとして取り組んだこと
  • SQLまわりのチューニング
    • COUNT周りを修正
    • よさげなINDEXつける
  • ロジックの修正
    • isu_condition.timestampをunixtimeに変換した列追加してそこでorder byとかするように修正
    • わざとリクエストdropする部分があったので、そこのdrop率をちょっと修正
  • mysqlの設定チューニング
  • nginxの設定チューニング

 それだけ?と言われるととても心苦しいけれど、それだけだよー!\(^o^)/ 8hはあっという間に過ぎました。でも、めっちゃ脳汁出る感じで楽しかった。最初のまっさらの時よりは、ちょっとでもスコア改善した。そのプラスをだいじにしたい。

 そう、色々と持ち帰れることはあったからおっけー!のびしろがある! とポジティブに考えていこう。

 

次回やりたいこと
  • ボイチャつなぎっぱなし作業
    • なんと今回はDiscordのテキストチャットだけでやった
    • やっぱ音声のが楽よね…
  • ファイル管理の戦略を練る
    • 事前にやれることはやろう。と身に染みた
  • マニュアル読み合わせ
    • スコア仕様への理解は大事だと思った。知ったところで、今回の範囲を越えて取り組む時間はあったのかはわからないけど(弱気)
  • デプロイ方法の準備
    • シェルスクリプトでぺぺっとファイルコピーとかしてくれる簡単なやつでもいいから大事。事前にやれることは(略
  • 計測ツールの活用
    • netdataインストールしてみたんだけどうまく使えなくて断念
    • セキュリティグループ変えられなかったし、どうしたらよかったんだ? スポンサーさんのを使うべきだったのか?
    • 事前にやれること(ry

  いやーもー、スコアが振るわないのはわかっているから、早く解説公開されてほしいなー!そして自分で環境立ててもう一度取り組んでみたいな。

 

競技中の思い出
  • 知り合いのみなさまのチームをピンしてコッソリ観察してたよ!(・ω・| みんながんばってた…すげえよ
  • 早々によくわからんことになってstack作り直した。作り直せる安心感が最高。AWSすこし触っててよかった
  • 17時過ぎにportalが激重になって一時中断した。「運営ISUCONだ」のツイートに、そういうことか!とちょっと楽しくなってしまった(不謹慎)。お疲れ様です。
  • スコアが1000点前後でなんでー?!?!と苦しんだけど、INSERTされずにデータが増えなかったからだった。こわい。
  • 18:45終了の5分前まで、どこの鯖を最終計測とするかモニュモニュしてた。全部入れ込みたかった。
  • サーバ上のソースコードを直に修正する漢らしい手法だったので、次はイイ感じにしたい。
  • 競技中トイレ行ってなかった…体によくないので気を付けましょう…
  • 楽しいことは集中できるし、やっぱり時間をガツッと確保できたのは最高
  • ソースいじって確認してのトライ&エラー的なのはたのしい

 

最後に

 めちゃんこ大規模なイベントになってるISUCONに参加できてよかったです。大会のportalサイトとかもめっちゃリッチだし、事前学習とかやってみた企画にテーマソング&MVや問題動画などなど、人と時間とお金が掛かっているなぁと感じました。

 運営スタッフの皆様には感謝感謝です。こんな楽しい思いをさせていただき感謝しかない~。

 参加者の皆様、対ありです!! そして決勝進出する方々、先おめです!!

 一緒に参加してくれたTさん、ありがとうございまーす!付き合ってもらって、めちゃ感謝しています。またやりたいって言ってくれたので、さらに感謝です。来年はもうちょっとイイ感じにスピードアップしてスコア稼ぎましょう!!楽しみ

 というわけで、次回も参加させてくれー!参加できますようにー!!!!(=人=)