インタビュー

ISUCON11を獲るのは誰だ?!ISUCON予選突破注目チームに迫る!

この記事を読むのに必要な時間:およそ 8 分

学生上位チーム

優勝経験者や連続出場チームだけではありません。ISUCONには毎回多くの学生チームが参加しています。今回は多くの学生チームが本選に通過した中,上位5チームのふらんふらん,aqua Fruits,手が3本あるテディーベア,kotamanegi,komorebiにインタビューを行いました。

ふらんふらん(スコア:128576)

人数1人
メンバーkai
プロフィール学生1人チームで,今回初参加です。ISUCONでは使用言語はGoで,RakefileとItamaeを持ち込んで戦っています。気持ちはRubyも使用言語です(?⁠⁠ Vimに入門したくて,このあいだVS Codeにプラグインを入れました。最後まで無効化しないで本選を終えたいです。
①の回答

IoT系のサービスというのを聞いて,時系列データがたくさんポストされてるくるのかな,それらの書き込みをいい感じにする必要があるのかな,Redisなどを入れたらダイナミックに解決できるかもしれないなとか考えていました。ただ,初参戦で経験値が少ないということもあり,飛び道具は控えて,地道なチューニングをしていこうと決めていました。

②の回答

1人チームで時間が惜しいので,計測ツールなどを流し込めるItamaeを用意していました。また,アプリケーションやマニュアルの全体把握はそこそこにして,ボトルネックに見えていた箇所に修正を重ねながら全体を把握していくという流れで進めていました。筋力が足りず,Nginxの設定で詰まり,Goの実装で詰まり,SQLで詰まりと,思ったように進まない苦しい時間があったことが,決定した方針を進めるにあたって難しかったことです。そういった時に,絶対にスコアが上がることをしようということで,サーバの分離や負荷分散の設定をして心を落ち着かせたのはよかったなと思います。

③本選に向けての意気込みを一言!

力不足を痛感する予選でした。本選が終わった後に,予選時より成長していることの実感を得られると共に良い結果がついてきてくれると嬉しいなと考えています。

aqua Fruits(スコア:124594)

人数3人
メンバーゆゆf0reachARRmomochi
プロフィールaqua Fruitsは,京都工芸繊維大学の非公式技術コミュニティ,あくあたん工房に所属する3人の学生チームです。ゆゆ(B4 2回目 いちごが好き⁠⁠,f0reachARR(B2 初参加 マンゴーが好き⁠⁠,momochi(M2 初参加 ももが好き)と,学年を超えてISUCONに興味を持っていたメンバーが集まり結成されました。aqua FruitsはNode.jsの実装を利用してISUCON11に参加しています。
①の回答

IoTサービスであることを知ったとき,絶え間なく細かいデータがPOSTされてきそうと想像したり,どんなヤバいコードがあるのかと期待を膨らませたり,という感じでした。実際に触ってみてからは,椅子に性格があるという世界観がおもしろいと感じていました。

パフォーマンス分析ツールの導入や,各種ログ出力を有効にしてからベンチマークを回して,ボトルネックを解析してから改善を始めるようにしました。

その間にマニュアルとコードに目を通し,気になったポイントの中から許容されているエンドポイントでのキャッシュの有効化と,リクエストを捨てていた部分の確率の変更を試すことからスタートしました。また,機能面で複雑な部分がないことから,SQLの改善はそこまでしなくて良いと予想していました。

②の回答

与えられた3台のインスタンスを最初から複数台構成に変更せず,1人1台利用して試行錯誤する方針は良かったと思っています。そのためのデプロイフローを整え,チームで共有して利用できるようにしていました。また,データベースをGUIで扱えるソフトウェアを使うことで,ベンチマークで使われるデータの特性を把握できるようにしていました。

難しかったことは,ISUCONDITIONを利用するユーザを増やすことに成功したが,スコアが下がってしまう問題への対処だったと思います。ユーザを増やすことは明らかにスコアにつながるのですが,上手く改善させることができませんでした。

③本選に向けての意気込みを一言!

本選めちゃくちゃ楽しみです!予選以上に沢山計測して,沢山挑戦していきたいです!(ゆゆ)

コードをしっかり読んで無駄なく改善していきたいです!(f0reachARR)

「推測するな,計測せよ」を大事にがんばります!(momochi)

手が3本あるテディーベア(スコア:80370)

人数3人
メンバーxxpoxx,Azon,mazrean
プロフィール東京工業大学デジタル創作同好会traPに所属するメンバーが集まり結成されたチーム。普段は部内サービスの開発・運用を担当しています。
①の回答

予選課題が発表されて最初に感じたことは,題材のおもしろさ,難しさです。毎年ISUCONではその課題のテーマが決まっており,今回のISUCON11予選課題はIoTを意識した課題となっていました。これは例年にはないもので非常に面白いものでしたが,IoTの性質から膨大なリクエスト数が予想される難しい課題でした。しかし,私たちのチームでは,Webサイトをチューニングする際の計測して改善するというフローは変わらないと考え,練習していたセットアップ作業を行い,計測結果を見てボトルネックを特定し,そこを改善するという方針は変えずに課題に取り組み始めました。

②の回答

ボトルネックを見つけ,改善するという方針により,スコアに現れない無駄な改善をすることなく,効果的な改善を続けていくことができました。これには,あえて担当を決めずに,各々が気づいた改善点を改善していくという工夫によって,見つかったボトルネックを改善できる人がどんどん改善していくという流れを作ることができたのが活きたと思います。しかし,最大のボトルネックが明らかになっているのにも関わらずその改善方法が思い浮かばない際に,点が少し伸び悩んでしまいました。そのような難しい状況をいかに打開できるかが本選の鍵になると思います。

③本選に向けての意気込みを一言!

私たちのチームは学生枠での突破で,上には多くの強豪が立ちはだかっていますが,少しでも良い成績を残せるように精一杯頑張ります!

kotamanegi(スコア:78267)

人数1人
メンバーkotamanegi
プロフィールはじめまして,チームkotamanegiのkotamanegiと申します。チーム名の由来はチームメンバーのアカウント名です。参加登録時に早く登録しなければ埋まると思って急ぎすぎて,チーム名の部分にまでkotamanegiを入力してしまいチームkotamanegiとして登録されました。初参加なのでどうせ本選進出できないだろうと軽く考えていたのでそれほど気にしていませんでしたが,今となってはkotamanegiをめっちゃアピールするやん点…みたいな感じになってしまって少し恥ずかしいです。個人登録ですが頑張っていきたいと思います。
①の回答

予選課題が発表されて,まず提供マシンの台数やスペックを確認しました。同スペックのAWSインスタンスが3台用意されるということを確認し,今回は割り当てる作業の特性を考慮する必要はなさそうだと感じました。

次に問題文を確認すると,アプリケーション/ISUのコンディション登録/データベースサーバの3つの作業に分担させるのが良さそうだと考えて分離作業をスタートしました。

この方針は結果的には大当たりで,データベースがボトルネックになっていることに気付けたのが収穫でした。

②の回答

DBサーバを分離するのに苦労しました。外部インターネットからのDBアクセスは今回のルールでは許可されていなかったので内部ネットワークからアクセスする必要があるのですが,当初はそのことに気づかず苦戦しました。

また,ソースコードに対して行った変更をサーバ上に反映することにも苦戦しました。Configファイルなどのコピー忘れなどがあり,行った変更が反映されなかったのでその原因調査に時間が掛かってしまいました。

③本選に向けての意気込みを一言!

1人ということで作業量的にはどうしても他のチームに劣ると思うのですが,作業量の分は,まあ,有り余る才能でカバーしたいと思っております。できるだけ上位を目指して貪欲にチャレンジしていきます。よろしくお願いします。

komorebi(スコア:63876)

メンバ ntomoya
人数1人
プロフィール東京工業大学の学生1人チームです。大学ではプロセッサの設計という,少しハードウェア寄りのことを研究としてやっています。昔からサーバをいじったり,システムの構成を考えたりするのが好きで,研究室でもネットワークや計算サーバの管理をやっています。普段はCTFというセキュリティのコンテストを趣味でやっていて,Webアプリケーションのコードを読むのは,そのCTFで少し慣れることができました。ISUCONは今回が初出場です。
①の回答

最初は,IoTデバイスからの情報を利用するWebサービスを模した問題ということで,何か細々としたデータを大量に扱う問題だという印象を受けました。そして実際,この大量のデータをどのようにさばききるのかというところが今回の大きなポイントでした。

取り組む際の最初の方針としては,サービス特有のボトルネック部分ではなくて,どのようなサービスでも点数が上がるだろうと考えられる部分から改善を行いました。具体的には,APPとDBの複数台構成,カーネルパラメータやnginxの設定の変更です。

細かい調整は後にして,とりあえず点数を上げることでモチベーションを保ちつつ,後で時間が無くなってこれらの変更ができずに後悔することが無いようにしました。

②の回答

最初にやると決めていた複数台構成や設定の変更について,どの部分をどう変えるのかというメモはしていたのですが,実際に与えられたサーバ3台それぞれに対して変更を入れる際に,慣れていないこともあって,思ったより時間がかかってしまいました。

なので,本来このような決まりきった部分は,多少なりともスクリプトを書くなどして自動化しておくべきだったと後悔しました。

また,アプリケーションのコードを変更する際には,時間をかけて書いた部分のベンチマーク実行が失敗してしまい,さらに,その修正をやると時間がかかりそうだと判断すれば,その部分はあきらめて,より短時間で点数が上がる部分を探すようにしました。

③本選に向けての意気込みを一言!

予選はどうにか突破することができたのですが,時間ぎりぎりまで変更を行っており,一歩間違えればベンチマークが失敗して競技が終了してしまうところでした。事前にもっと練習や準備をしていれば,スムーズに進められる部分がたくさんあったのは非常に大きな反省点です。

本選では,時間を短縮できる部分をできるだけ増やして,アプリケーションの本質的な部分のボトルネックの解消により多くの時間が割けるようにしたいです。

自分の力を最大限に出し切れるよう,かつ全力でISUCONを楽しみつつ,優勝を目指します!

著者プロフィール

馮富久(ふぉんとみひさ)

株式会社技術評論社クロスメディア事業室部長代理。

1975年生まれ。横浜市出身。1999年4月株式会社技術評論社に入社。入社後から『Software Design』編集部に配属,同誌編集長(2004年1月~2011年12月)や『Web Site Expert』編集長を歴任。その後,2008年9月に設立したクロスメディア事業部(現クロスメディア事業室)の責任者として,イベントやWeb・オンライン企画を統括。現在は,技術評論社の電子出版事業を中心に,デジタル・オンライン事業を取りまとめる。社外活動として電子書籍を考える出版社の会の代表幹事やWebSig 24/7のモデレーター,TechLIONプロデューサーなども務める。過去にIPAオープンソースデータベースワーキンググループ委員やアックゼロヨン・アワード他各賞審査員などの経験を持つ。

Twitte ID:tomihisa(http://twitter.com/tomihisa/

バックナンバー

2021

  • ISUCON11を獲るのは誰だ?!ISUCON予選突破注目チームに迫る!