no risk no life

技術、投資、時事など

ISUCON7 予選に参加しました

10/21(土)に、チーム爆アドというチーム名にて、earshttpというハンドルネームで参加させていただきました。

予選概要

予選合計参加者数

  • 合計 407組、1132名

10月21日(土)

  • 204組 , 577名
  • 一般 173組 [2名:28組 , 3名:145組]
  • 学生 31組 [2名:5組 , 3名:26組)

10月22日(日) 

  • 203組 , 559名
  • 一般 165組 [2名:44組,3名:121組]
  • 学生 38組 [2名:6組,3名:32組]

総合順位

  • 145位 26,759点

課題内容

課題はチャットシステムでした。 3台のubuntuサーバ(APPx2、DBx1)を使い、高速化するものでした。

修正内容

当日お腹の調子が悪く、メンバー二人は某所で集まり、自分は自宅から参加しました。 連携方法がチャットしかなかったので、一人で走る感じになってしまいました。

言語はRubyを使用しました。

netdataの導入

やってもらいました。

SQLの見直し

  • select文の取得カラムの見直し
  • Indexの貼り直し
  • レコード取得数の見直し

MySQLのチューニング

知識がなかったので調べながら使用メモリ量のチューニング

Nginxのチューニング

やろうとしたけど知識がなさすぎて手が回りませんでした。

はまったところ

進めていくと、/icons取得時に500エラーが大量に発生するようになりました。 /iconsはDBに入っている画像データをAppが書き出す形になっており、netdataで見るとDBサーバのCPUが張り付いていました。

画像をファイルに書き出してNginxに良しなにしてもらおう、ということは思いつきましたが、私用の都合で途中抜けしたため、時間が足りずにタイムアップ。 18時時点で25000点ほどで離脱しました。 その後メンバーにミドルウェアのチューニングをお願いし、27659点を記録しました。

感想

人生初のプログラミングコンテストでしたが、0点でした、と書かずに済んでホッとしています。

開始時レギュレーションを一切読まずに進めたため、pythonからrubyへの切り替えができずにあたふたしました。 レギュレーションは必ず読むことにします。

また、リモート参加は慣れていないと意思疎通が難しいので、お腹を壊さないようにしようと思います。(:3 」∠ )_

来年も参加します。 お疲れ様でした〜