ISUCON6予選に参加してきました
こんにちは。
ようやくIT関係の記事が執筆できて嬉しいです。
今回はISUCON*16に参加してきましたので、その感想や、結果報告となります。
メンバー
同好会の2年生の先輩、私と同級生。
2年生1人、1年生2人という構成です。
当初、役割分担などはありませんでした。(後述)
目標
予選突破。
有意義な時間にする(わけがわからないまま終わらない)。
勉強したところ
当初予定していたのは
準備期間が2週間しかなく、私達1年生は言語は何も書けず、データベースも触ったことがない状況でしたので、Python*4だけに集中して勉強しました(大変でした)。
そのため、役割分担もありませんでした。
先輩も忙しく、一緒に作業する機会があまりなかったので、進捗を報告し、アドバイスを受けながら、勉強しました。
問題
今回は、nginx*5で構築されたwebサーバーを限界まで高速化するという内容でした。
レギュレーションはこちらです。
当日の流れ
当日は、Microsoft azure*6にてVirtual Machine*7を構築するところからの開始でした。
まず、DearmSpark*8ではVirtual Machineを構築できないという問題に気づくまで1時間かかりました(自分の確認ミスです、すいません)。
次に、Virtual Machineの接続ボタンが押せないというトラブルが発生、先輩がSSH*9コマンドで接続、windowsの私たちは、Tera Term*10で先輩のパソコンに接続して作業をようやく開始(ここまでに2時間)。
先輩から今回のサーバーの構造や、データ、通信の流れを聞き、大まかに役割を分けました。
- 先輩 全体を好きなように見てもらう。
- 同級生 webサーバーの.pyファイル*11。
- 私 nginxの設定ファイル。
私は、まずnginxにキャシュをできるようにし、ついでに同時接続数なども変更しました。
その場で調べた付け焼き刃の知識でやりました。
試しにベンチマークをしてみました(ポータルサイトがあり、そこにIPを送ると点数で返してくれます)。
結果は「Fail」内容は「初期リクエストに失敗しました。」となっています。
GET /initializeが5秒以上だと駄目だと、確認しました。
さっそく、試すが5秒かかっているようには見えないです。
一応、.pyも見ましたが、よくわかりませんでした。
先輩にも聞きましたが、わからなかったです。
余談
先輩がソースコードを見て楽しくなっていました。
途中から、権限がないためPOSTできないのをできるようにしたり、ソースコードをじっくり見て、先輩に解説してもらったり、JavaとPythonのクラスの仕様の違いなどの勉強会になりました(16時頃から)。
結果
Fail解決できないまま0点でした(Failは失格という扱いになるらしいです)。
感想
初めての大会でしたので気合入ってましたが、残念な結果でした。
特に「やってやった!」という感じがなかったのが悔しいです。
ですが、勉強会など有意義な時間でした。
また、Pythonを勉強するいいきっかけになったので、参加してよかったです。
来年は点を取れるように頑張ります。
運営の方々、ISUCON6に関わった方々、本当にありがとうございました。
*1:お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングの大会。
*2:関係データベース管理システム(RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)。
*3:OSの中核である部分。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋。
*4:プログラム言語の1種。
*5:フリーでオープンなWebサーバー。
*7:仮想マシン。1つのコンピューターで複数のOSを動作できる。
*8:Microsoftが提供する学生支援プログラムである。
*9:暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。