hero_picture
Cover Image for ISUCON13に参加しました(´・ω・`)

ISUCON13に参加しました(´・ω・`)

2023/12/25

はじめに

チーム(´・ω・`)です

言語はPHPを利用し、最終スコアは 34,753 でした

N+1の対応がやりきれず、伸び悩んでしまいました…

利用させていただいたツール

alp: https://github.com/tkuchiki/alp

TL

  • 前日までに: 素振り、スクリプトをある程度整備
  • 10:00~ 概要確認、Git設定
  • 11:00 DBへインデックス追加
  • 11:30 アプリケーションとMySQLを分離
  • 12:30 PowerDNSのバックエンドをSQLiteへ
  • 12:30- アイコンを取得する部分とalpを見て時間のかかっている場所の改修
  • 16:00 PHPのチューニング
  • 17:30 N+1がめっちゃあることに気づいたので、簡単にキャッシュする仕組みを追加
  • 18:00 競技終了

最終的な構成

1: DNS/アプリケーションサーバ

2: MySQLサーバ

3: 空

反省点

まず、N+1に気づくのが遅すぎました…

過去の問題をやってきて for 文の中でクエリが実行されていることが多かったため、その中だけを確認しており、呼び出している関数の先が見切れておらず、気づけませんでした

また3台目の利用ができず、アプリケーションサーバにできたら、わずかながらスコアが上がったのではないかなと思いました

感想

Go言語が多く強い中ではありますが、PHPでもここまでいけるというのを見せつけたかったのですが、我々の力及ばず得点が伸ばしきれませんでした

今回の問題ではDNSの要素もあり、勉強にもなるISUCONでした

もし来年もありましたら参加させていただきたいなと思います

ここまでお読みいただきありがとうございました