ISUCON公式Blog

WINNER'S PRIZE \1,000,000



   

LINEが主催するパフォーマンスチューニングコンテスト ISUCON7のオンライン予選、皆さんもうすでにお申込みは完了されましたでしょうか?お申込みはこちらからですので、ギリギリにならないよう早めにお申込みください。ISUCONで勝つためには「申込をする」が最重要ですよ!
ISUCON7 オンライン予選の参加登録を開始&参加チームとメンバーリスト : ISUCON公式Blog

さて、そろそろ締め切りも近くなってまいりました。「もし出場しようか悩んでいるという方がいたらこれはまずい!」と思い、過去のISUCONで優勝した経験をお持ちの皆さんに
  • あなたにとってISUCONはどんなイベントですか
  • 優勝した時の勝因は何でしたか
  • 参加しよう、してみたいという人に向けて一言お願いします!
  • というのをセットで聞いてみました。

    参考までに、ISUCONは過去6回開催されており1チーム3名が標準的ですので18名の優勝者がいる計算ですが連覇や複数回優勝を成し遂げているチームが多いため、実際には優勝経験者は9名となっています。インタビューしてみたら何だか豪華な布陣となったので満足しています。


    というわけで、あなたにとってのISUCONが始まりますように!ちなみに過去問への挑戦などはPC版でこのエントリを見た際、左カラムにそれぞれまとめがありますのでご参照ください。 ではどうぞ!

    @tagomoris さん

    2Otf6_Ln_400x400
    Twitter:@tagomoris Blog:たごもりすメモ
    過去の戦績:ISUCON1 出題、ISUCON2 出題、ISUCON3 優勝、ISUCON4 優勝、ISUCON5 出題
    tagomorisさんはISUCONの創設者でもあります。

    あなたにとってISUCONはどんなイベントですか?

    自分にとっては、年に一度のガチンコ勝負、という感じのイベントです。
    普段だと働いている場所や状況などによって「何ができるか」「何をしたらよいか」は異なるのが当たり前ですが、ISUCONに限っては全員が同じ状況で、同じ目的で作業をします。
    自分が適切なことを高いパフォーマンスで行えるかどうかを客観的に見られる、非常に貴重で楽しい機会です。

    優勝した時の勝因は何でしたか

    まずWebアプリケーションとして必要な改善をひと通り行えたこと(低パフォーマンスクエリの改善やDBスキーマ変更、非効率ロジックの改善、複数台構成への変更など)、その上で課題アプリケーションに特化したプラスアルファの変更が行えたことだと思います。
    レスポンストラフィックのデータ特性(高解像度の写真)にあわせたデータ前処理、ISUCON4の場合はWebのキャッシュの有効化、などの状況によって異なる、現実のアプリケーションについて回るポイントを抑えられたのが勝因の最後のひとつでしょうか。

    参加しよう、してみたいという人に向けて一言!

    自分に何ができて何ができないかを正面から見詰めるのは、精神的にしんどいものでもありますが、同時に非常に楽しく後々のためになるものでもあります。
    またISUCONは参加するだけで非常に疲れますし、休日を使うことにもなりますが、他では決して得られない経験が得られると断言できるでしょう。
    さあ、勝利の瞬間のガッツポーズというプログラマ生活に滅多にない体験をいっしょに目指してみようじゃないか!


    Read more...

    ISUCON7 オンライン予選の参加登録を開始&参加チームとメンバーリストにてお知らせしていました課題アプリケーションの実装について、お手伝いいただける方を募集いたします。オンライン予選の開催まで残り時間が少ないですが是非ご協力ください。

    PHP,Go,Pythonは出題側で用意する予定ですが、Ruby,Perl,Node.jsについてお手伝いいただける方はご協力ください。応募がない場合は残念ながら予選・本選における参考実装が提供されない可能性がありますので是非宜しくお願いいたします。

    お手伝いいただく場合はISUCON7には参加できませんのでご了承ください。謝礼などは出ない予定ですが、ISUCON7の出題チームとして予選・本選にご参加いただけます。問題の修正なども発生する可能性がありますので予選・本選の前後の期間は忙しくなる可能性が高いです。

    すでにISUCON7に応募済みの方で、参加辞退したうえでお手伝いいただける場合はご連絡ください。こちらで参加チームのメンバー変更など行ないます。

    応募はこちらから
    ISUCON7 課題アプリケーション実装お手伝い申し込みフォーム

    応募締切は 10月9日(月) まで。お手伝いいただくか否かは締切後すぐにご連絡いたします。宜しくお願いします!

    Read more...

    こんにちは、ISUCON7で出題者チームになった @methane こと KLab の稲田です。

    そろそろ皆さん準備を始められていますか?
    歴代の猛者の方の中には「普段やってることを普段通りにやるチームが強い」と言う人もいますが、普段通りにするだけで試合を有意義に戦えるチームはごく一握りです。
    ISUCONの試合中の緊張感は、本物の障害対応と似ています。違うのは、楽しさと苦しさのバランスと、事前に決まった終了時間があることだけです。

    そんな緊張の中で競技を楽しむには、練習をしていたほうが圧倒的に有利です。
    初代ISUCONの出題者であり、何度も優勝されてる tagomoris さんいわく、ISUCON参加前と参加後に最も多くのものを持ち帰った人こそが勝者です。勝者となるためにも、事前に練習して、競技時間を有意義に楽しみましょう。

    さて、「何を」練習すればいいかについては、ISUCON 夏期講習 2017 を開催しました(当日の資料あり)にある @fujiwara さんの資料がとても参考になるので読んでおいてください。

    私からは「どうやって」練習すればいいかのオススメを紹介しておきます。
    一番してほしいのは、なるべくチームでのリハーサル形式の練習です。まとまって1試合分の時間が取れない場合でも、試合開始後2~3時間程度の流れだけでもしておいた方が良いと思います。

    具体的には、 @fujiwara さんの資料にもある次のようなことを、ちゃんと手を動かして練習し、手順書やメモを残すなどして当日にググらなくても良いようにしておくことで、試合中により多くの時間をチューニングに集中することができるはずです。

  • ssh の設定
  • 例えばメンバーの公開鍵を登録して公開鍵認証にするなら、設定して sshd を再起動した後に、そのログインセッションを維持したまま、他の端末から ssh できることを絶対に確認しておきましょう。ここでミスってログインできなくなると、試合開始後3分でISUCONが終わってしまいます。

  • バックアップとリカバリ
  • 設定ファイル、データベース、その他の必要なファイルを確認し、自分のPCかクラウドに転送しておく。ファイルをバックアップしたつもりが、シンボリックリンクだけが入ってたなんてことがないように、中身も確認しておく。クラウドサービスを使う場合は、外部から見えないことを確認しておく。(公開されているのを見つけたら失格です。)また、本番では必要にならないかもしれませんが、リカバリも練習しておきましょう。バックアップができていることの確認にもなりますし、もし本当に必要になったときは確実にテンパっているからです。

  • systemctl 等の管理コマンド
  • どんなプロセスが動いているかを確認し、不要だとわかったデーモンを止めたり、ログの読み方 (
    /var/log/
    以下にログが書かれるのか、
    journalctl
    を使うのかなど) を確認しましょう。

  • モニタリングツール
  • 使い慣れたものがない場合は、資料にある netdata が良いと思います。インストールと、その見かたを把握しておきましょう。

  • プロファイリングツール
  • alp などのアクセスログを集計して重いリクエストを見つけましょう。 pt-query-digest などのツールを使って重いクエリを見つけましょう。その他、使用するかもしれない、アプリやプログラミング言語ごとのツールの使い方、結果の読み方を、手と目と頭を使って確認しておきましょう。

    それ以外にも、初期は確認・調査するべき事がたくさんあるので、誰が何をするのかの役割分担と、その手順を確認しておきましょう。アクセスログの集計ツールなどを普段使っていない場合は、ちゃんとインストールしてから動かすまでを実際にしてみましょう。より長い時間をチューニングに使うことができますよ。リハーサル形式の練習の題材としては、去年のISUCONの予選か、pixiv さんの社内ISUCONを利用すると良いと思います。

    古いISUCONの問題は、特に変化が激しい言語だと動かすことすらままならないかもしれません。また、本戦の問題は、毎年何かしらクセのある問題なので、あまり事前練習には向かないと思います。上記の2問については、まだ1年しか経っていませんし、重いクエリを見つけて解決するといった定番のチューニングの練習ができると思います。 ただし、pixiv private isucon はディストリビューションとして Debian を利用していますが、予選ではUbuntuを利用する予定なので、練習するときはディストリビューションによる違いに気をつけてください。

    さらにチューニングの練習をしたい場合は、まず自力でできるところまでチューニングしてみて、その後解説・攻略記事を探してそれに習って高得点を出してみましょう。 pixiv 社内 ISUCON については私が書いた攻略記 もあるので参考にしてください。

    攻略記事を参考にするときは、単に同じことを実装してみるだけでなく、どうすればそのチューニングをすればいいことにノーヒントで気づけたかを考えましょう。チューニングをする前に、自分のサーバーでモニタリングソフトを動かしてダッシュボードを見たり、プロファイルを解析したり、 netstat (今時なら ss 等) してみたりして、「よし、本番では自力でこれに気づくぞ!」と思えるようになりましょう。知識不足を痛感したときは勉強のチャンスです。

    さらに余力がある人は、過去の猛者たちの攻略記を、「どうすれば自分もこのように戦えるだろうか」と考えながら読んでみると、いろいろなヒントや練習すべきポイントが見つけられるかもしれません。
    Read more...

    ↑このページのトップヘ