221 Views
January 22, 26
スライド概要
2026/1/22 Hatena Engineer Seminar #36 プロダクトを支えるAI編
決められたルールの上でパフォーマンスをいかに向上させられるかを競うISUCONというコンテストがあります。このISUCONの過去問題を題材に、Mackerel MCPを活用することで、AIがどこまで改善できるのかを試しました。この発表では、Mackerel MCPの使い方を解説し、AIがどのように改善を進めたかを振り返ります。
こんにちは
Mackerel MCPを使って AIでISUCONに挑戦する id:momochi29 2026/1/22 Hatena Engineer Seminar #36 プロダクトを支えるAI編 1
自己紹介 ● id:momochi29 ● Mackerelチーム ● Webアプリケーション エンジニア 2
モチベーション ● AIがどれくらい自律的に問題を発見・改善で きるのか試してみたい ● 問題発見にMackerel MCPサーバを使ってみ たい 3
ISUCON ● Iikanjini Speed Up Contestの略 ● お題となるWebサービスをルールの上で、振 る舞いを変えずにいかに高速化できるかとい うスコアを競うコンテスト 4
過去問 ● 過去問がGitHubで公開されている(ありがたい) ● 初めての場合はISUCON9予選がおすすめ ○ Webアプリケーションの王道構成 ○ 今もメンテナンスされていて変なところでハマらない (ありがたい) 5
推測するな計測せよ ● パフォーマンス改善でよく使われる格言 ● AI時代でも変わらず計測は大事 6
Webアプリケー ションの計測 ● ひとえに計測と言って もいくつか粒度がある 7
ところで… ここだけ? Mackerel = インフラ監視専用? 8
No 9
Mackerelで 計測できること ● 2025/5よりAPM機能 をリリース ● インフラだけではなく アプリケーションも 計測できる ※下線は現時点で 対応しているもの 10
MackerelでAPM機能を使う ● OpenTelemetryという規格に則っている ● 現在はメトリック/トレースに対応 ● 計測方法について詳しくは: https://mackerel.io/ja/blog/entry/tech/ ai-isucon 11
OpenTelemetry の 計装が大変そう という方向け ● OBI(OpenTelemetry eBPF Instrumentation) というものを使うと アプリケーションコー ドには手を入れずに 計装できる 設定はこれだけ 12
Mackerelにトレースを送ると 13
Mackerelにトレースを送ると 14
Mackerel MCP サーバ ● 2025/10にリリース ● HTTP/DB統計情報の 取得やトレースの検索 (時間がかかっているも のなど)ができる 15
MCPを入れるとコンテキストが 圧迫されるのが嫌なんだけど… ● Claude Code2.1.7からMCPSearchというツールがデフォルトで オンになった ○ ○ デフォルトではMCPがContext Sizeの10%を超えるとTool Searchが使われる ENABLE_TOOL_SEARCH=auto:5 のように調整可能 ● 必要なMCPツールだけロードすることでコンテキストを節約できる 詳しくは: https://code.claude.com/docs/en/mcp#configure-tool-search 16
AIにISUCONを 解かせたい ● Claude Codeで ISUCON改善エージェ ントを作成 17
AIにISUCONを 解かせたい ● Claude Codeを汎用 エージェントとして 利用 ● 自然言語だけで構築 ● 良い成果が出るように ループ毎にプロンプト を調整 18
プロンプトの工夫 1. 一気に全部やらず1個ずつ 2. マニュアルをちゃんと読ませる 3. サブエージェントの活用 19
一気に全部やらず1個ずつ ● 一気にやってベンチマークがコケると デバッグに時間がかかる ● 小さく変更→ベンチマークを徹底 20
マニュアルをちゃんと読ませる ● ISUCONのスコアはリアルを反映している (と思う) ○ 例) ISUCON9予選ではcampaignという変数があり、 この数値が大きいほど人が殺到する。全部捌けたら スコアが爆増する 21
サブエージェントの活用 ● 強いチームは役割を分けていそう ○ 大技を繰り出す人 ○ 小技で着実に改善する人 ○ インフラのチューニングをする人 ● git worktree による並列実行はうまく行かな かった ○ ベンチマークは並列に動かせない 22
AIによる改善の様子 ● 段階を踏んで改善していた ○ 1. 計測から発見したボトルネックの解消 ○ 2. マニュアルを読んで改善 23
計測から発見した ボトルネックの解 消 ● この改善によって、DB クエリのボトルネック は大体解消した ● 1810点 → 15160点 24
マニュアルを読ん で改善 ● 明らかなボトルネック がなくなったことで、 campaignを高めても捌 けるようになった ● 15160点 → 43500点 25
マニュアルを読ん で改善(失敗版) ● ボトルネックを潰し終 える前にcampaignを高 めようとしていたが失 敗していた ● (おそらく) 逆に言うと campaignを高めるため に何をするべきかAIが 考えるに至った 26
スコア遷移 27
感想 何やってるか知らんけど何か改善した 28
感想 ● 何やってるか知らんけど何か改善した ○ シグネチャが変わっていなければ中身は気にしない、 の超高級版? ○ これが許されるのはベンチマークで整合性が保証され ているのが大きいだろう 29
試してみてください! ● Mackerel のAPMは500万スパン/月まで無料 ● 今回の検証は405万スパンで無料で出来た 30