ISUCON公式Blog

WINNER'S PRIZE \1,000,000



   

こんにちは、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...

    学生限定イベント「ISUCON 夏期講習 2017」を開催いたしましたのでスライドなど共有します。

    当日は、優勝・優勝・出題・3位・優勝・準優勝というISUCON戦歴をもつ最強講師、面白法人カヤックのfujiwaraさんお越しいただきました。



    ISUCON = Iikanjini Speed Up CONtest だと知って驚く方が毎年一定数いらっしゃいます。
    IMG_8380


    当日は講義編と実践編の二部構成で「わかる!ISUCON!」と言い切りたいレベルで大変よくわかる資料をご用意いただきました。資料はこちらで公開されています。
    講義編




    後半では実際にどのようにスコアをあげていくのか、コードを見ながら説明いただき各自トライしてみるという形となりました。
    IMG_8386


    実践編



    懇親会では講義ではわからない「リアルなISUCONの戦い」について参加者から沢山の質問があったようです。 ISUCON7 は学生枠が12枠となりました、是非みなさんご参加ください!

    予選の応募申し込みはこちらから。
    ISUCON7 オンライン予選の参加登録を開始&参加チームとメンバーリスト : ISUCON公式Blog
    Read more...

    追記 9/20 18:20 参加チームを更新
    --
    LINE株式会社 主催 ISUCON7 の参加登録を本日から開始いたしました。

    参加登録締め切りは 2017年10月10日(火) 18:00:00 JST です。

    isuconlogo_2

    ISUCONについてはこちら
    ISUCON7 開催&日程決定! #isucon

    オンライン予選の概要と開催日

    オンライン予選の方式は以下を予定しております。
  • さくらのクラウド を利用
  • 出題者側でお題アプリが乗ったマシンを用意
  • 各チームは用意されたマシンに ssh でログイン
  • 各チームは出題者側で用意したベンチマーク用 Web ページからベンチマークを実行
  • 予選問題に使われる OS は Ubuntu を予定


  • 予選・本選で使用するサーバ環境は、さくらインターネット様からの提供となるため参加費などは無料となります。また、参加者がさくらのクラウドの管理画面をさわることはありません。

    運営チームでは PHP,Go,Python で参考実装を用意する予定です。その他の言語については追って発表いたします。また、出題内容はオンライン予選当日に発表いたします。

    予選の開催日ですが10月21日(土)、22日(日)のいずれかとなり、開催時間は10時〜18時の時間帯固定です。オンライン予選の実施は1日どちらかのみ参加可能で、参加申し込み時にどちらかを申請していただきます。
    なお、予選時にLINEのカフェを会場提供しておりましたが今年はありませんのでご注意ください。

    本選開催日

    11月25日(土) LINE株式会社 新宿オフィス にて開催となります。当日は10時から開始、懇親会も予定しております。詳細は本選出場者の方へ追ってお知らせいたします。

    本選出場チームの選出

    予選結果の一般枠上位18チーム・学生枠上位12チームの合計30チームを本選出場とします。運営枠、その他の枠はありません。
    (昨年までは25チームとしておりましたが今年は5チーム増枠しております)

    注意事項

    ISUCON7 への参加は2〜3名を1チームとし、予選と本選でチームメンバーの変更を行うことは出来ません(予選を3名で、本選を同一メンバーの2名で参加はOKです)。
    また、情報格差が出ないよう 予選終了までは出題内容などのTweet、ブログ掲載、Githubへの公開等をせず、他者へ漏らさないようお願いいたします。 予選の内容を他者へ漏らしたのが判明した場合など、本選出場を取り消す事がありますのでご注意ください。程度によりますが、 即刻、競技終了とする場合もあります ので十分ご注意ください。

    また、その他に不正や運営の妨げになると判断した場合は、運営判断で予選参加をお断りしたり失格とする場合があります。ご注意ください。


    参加登録

    こちらからお願いいたします。参加予定チーム数によって調整が必要となる事項もありますのでお早めにお申し込みください。

    ISUCON7 オンライン予選 参加登録フォーム
    参加登録締め切りは 2017年10月10日(火) 18:00:00 JST となります
    ※ご登録いただいたチーム名とメンバー名は ISUCON 公式サイト上で公開されます
    ※チーム名に公序良俗に反する名前は使わないでください
    ※チーム名に機種依存文字・絵文字などが入っていた場合、サイトへの表示時に表現を変えさせていただく場合がありますのでご了承ください

    学生枠はチームメンバーが全員学生であることを条件とさせていただきます(休学中でも OK)。ただし、社会人学生が学生枠で出場することはできません。

    予選参加チーム

    ・チーム新卒(mot,abcang,syusui)
    ・奴 with B(yattan,kakura,miida)
    ・流れ弾(Konboi,tkuchiki,hilotter)
    ・†空中庭園†《ガーデンプレイス》(ryotarai,eagletmt,mozamimy)
    ・かに道楽(yugo,hhatto,ash)
    ・ありくい(やまぐち,くりはら,あいはら)
    ・チームちゃちほこ(nishiwaki,kase,azuma)
    ・LabALICE(macotasu,naughtLdy,karia)
    ・ガチムチレンジャーズ(ガチムチレッド,ガチムチブラック,ガチムチブルー)
    ・中国四国九州(鳥取,徳島,大分)
    ・isutee(oniyanma,kikuyanma,yamayanma)
    ・チームおにやんま(karupanerura,silvers,ar_tama)
    ・vg12(s_tajima,t.k,at_grandpa)
    ・MK5(かびさん,K,まえけん)
    ・メンチコロッケカレー(山P,じろっぴー,P渕)
    ・underscore(_goka,_sakajunquality,_yokoninaritai)
    ・5000兆円欲しい!(たわし,おらんらんらんど,らぃと)
    ・yoshikids(yoshikids,yoshikids2)
    ・ようこそJavaリパークへ(コキチーズ,sejour,taruta)
    ・:innocent:(utgwkk,wass80,yu3mars)
    ・白金動物園(sorah,mirakui,rosylilly)
    ・中身が少し赤い程度王国(オニオンソース(1杯),げんこつHB(250g),ローヤルさわやか(500ml))
    ・くもキャスト(gaaamii,karur4n)
    ・にゃん(Makky,himkt,lapis_zero09)
    ・pチーム(takedajs,enomotodev,kosachan)
    ・MyKensuke ストロベリーミート味(maaaato,nakaken,yu-sa)
    ・瞬殺の美学(mogetta,ayumu83s,rmanzoku)
    ・学生気分(修士予定,学士予定,高卒確定)
    ・しましまスペシャル(hokaccha,wata_dev,Osadake212)
    ・ケバ部(ショウガナイ,ケンタロウ,ナンバー3)
    ・SMAP(supermomonga,aomoriringo,purintai)
    ・DDBB(CREATE,DROP)
    ・イカ焼きワイン(negipo,0tany,fukajun)
    ・ISUCON Reliability Engineers(a-know,soudai,stefafafan)
    ・WINシングル定額(multiverse2011,ik4)
    ・シナモンズ(Vaduz,mono0x,moznion)
    ・ぞい(isaoeka,akihiro_0228,mihyaeru21)
    ・Asakusaの方から来ました(tagomoris,joker1007,yancya)
    ・優勝(hydrakecat,ujihisa,sinamon129)
    ・railsへの執着はもはや煩悩の域であり、開発者一同は瞑想したほうがいいと思います。(cnosuke,k0kubun,rkmathi)
    ・nw-con(mezina1942,ちゃびん,MTN)
    ・モトーナオヤ(n0ts,toqoz,takmon)
    ・会社の犬(放し飼い)(大,町,清)
    ・オツベル(サンタマリア,グララアガア,ビフテキ)
    ・kentac55は割りと何でも出来る方だから、ISUCONも出来るって思うな。(tanishi345,jinshi,kentac55)
    ・チーム人間性(ocadaruma,mshibuya,sushio)
    ・まかクリスタル(ny1030,kunihito,)
    ・ガトリンガー葉の仲間たち(cs_sonar,kawakattsun,luccafort)
    ・熱盛(ogawa,ayaka)
    ・大和B(arazon,inazou)
    ・人は何故生きるのか((´・ω・) su -,tomoyat1,yishibashi)
    ・あああああ(渋谷凛,ざきた,tamago)
    ・そり(針金細工,でこ)
    ・日替わり定食(1.ハンバーグ+カキフライ定食,2.あじフライ+エビフライ+鶏の唐揚げ定食,3.サバの味噌煮+鶏の唐揚げ定食)
    ・FUJI-CON_mk-2(TG,KM,TM)
    ・ババウ(netmarkjp,matsuu,ishikawa84g)
    ・We are the Franks(@ijin,@fruwe,@cads)
    ・yokohama-north(trtraki,hanhan1978,bati11)
    ・百万円ドリブン(aokabi,nakario,murata)
    ・青山サンライトビルズ(masawada,KGA,dekokun)
    ・Anti-Gravity(abnoumaru,kinmemodoki,staybuzz)
    ・AKG(ml,onishi,potter)
    ・はの肉(mizukmb,hanocha,otofu-square)
    ・チームinarisan(sugilog,lukesilvia,mashan)
    ・g0tiu5a(jtwp470,sakasin,tukejonny)
    ・大人のパイン、公序良俗に反するのだろうか? 反しないのだろうか?(masayannuu,komitomo,t-yng)
    ・TFOB(bells17,shufo,pospome)
    ・きざわ(wyvernMurai,shohohohfire,kuntao)
    ・インテークマニホールディングス・ジャパン 2017(iguchi1124,hayashikun,izumiSy)
    ・仮想通貨で一発あてたい(timakin,mosa_siru,aibou)
    ・チャペアペ虎火ミョーホントゥスケ人造ファイヤファイボワイパー(家虎,三連MIX,咲クラ)
    ・urchin(m0ri,iasa,osd)
    ・チームZONO(petitviolet,chidakiyo,kaz3284)
    ・WeGottaWing(trashbox,KK,MY)
    ・チーム rehash.fm(azihsoyn,yudsuzuk,mobata)
    ・すぐちむ(hiroyuko,ishikawa,nakajin)
    ・.dat(kanny,TakatoshiMaeda,y_matsuwitter)
    ・一元(jfutagawa,そな太,userland)
    ・ウデマエC-(suiyujin,sesta,hoshitocat)
    ・三島ブラザーズ(itkq,take-k,kanata2)
    ・長田Lab(cat2koban,takezyou,snow_rain)
    ・urabu(ginyooon,okyunnura)
    ・チーム鉄塔(鉄塔3,鉄塔1,鉄塔2)
    ・ボ(ともぞ,きょまい,うーんうーん)
    ・ニャン(renjikari,ladicle,hiconyan)
    ・oops(kjm,nyaa,2matz)
    ・鍋部(catatsuy,walf443,st-cyrill)
    ・ケーキ屋さん見習い(るね,dasoran,sekimiya)
    ・スギャブロエックス(gfx,sugyan,kazeburo)
    ・masakt(masakt,miyukt,)
    ・購入フォーム(kanga333,tosametal,udai928)
    ・見えざる抑止力 InvisibleLimiter (d-kami,tatt,ZeitungM)
    ・ひでおとゆかいななかま(なまず,cut-ter,yuuki0xff)
    ・taltal(koya,cakecatz)
    ・福岡スレンダーズ(monochromegane,tkengo,mizoR)
    ・5518(hisaichi5518,soh335,kenjiskywalker)
    ・だからあれほどリセマラ頑張っておけと(俺の課金が天を衝く!!,カル○アのマスター・オルタ,デデデ大王)
    ・微課金(munisystem,norikakip)
    ・Opinnaker (deeeet,spesnova,b4b4r07)
    ・imeter(takeswim,kskb,komiyak)
    ・カルボナ~ラ(toshimaru,redfit,s-jcs)
    ・IS2010(yamadagenki,鵺,papua)
    ・ウデムシマニア(tknzk,mserizawa,meganemura)
    ・long live http/418(laouji,bonsaikitten,rucola disliker)
    ・Tokyo Farmers(Yasunori Tanaka,oreno4649,masleisii)
    ・fujiwara組(fujiwara,acidlemon,handlename)
    ・tanmen's(upin,mog,tanmen)
    ・チーム爆アド(pop-off,earshttp,whoimi)
    ・西の民(京都の民ツルえもん,鹿児島の民ワタル,熊本の民マッツー)
    ・finfin(mu,mumu)
    ・0%(rosiro,tanno,haru)
    ・okdog(@sh19910711(安全第一),@takuti,@himaaaatti)
    ・ISUWAT(kpango,tgotou,rinx)
    ・kawaya(kojiji,freddie,tzu-lin)
    ・バナナマンさん(asflash8,ちゃんまー,ぴろ)
    ・サウナーズ(ITP,AKR,SKS)
    ・console.log(_remew_,rin_neko,)
    ・メキシコ沖(kazy,usk,kmats)
    ・餃子に包まれた愛の物語(gaooh,ijawaman,star)
    ・naisted(niwatolli3,usek)
    ・tmp(かなた,mmm888,Ranks)
    ・全然わからない。俺たちは雰囲気でScalaを書いている。(doyaaaaaken,ymtk,pegm)
    ・MRTと愉快な仲間たち(SSK,ふじわら,やまもと)
    ・何もしちょらんのに壊れた(chigichan24,k5342,euglena1215)
    ・oysters(zoe,okashoi,02)
    ・ITF(zr_4,hiroshi,kaji)
    ・かにぱん(morin_river,tomato)
    ・01cpp(nesupe,take01x,dskzip)
    ・むー(kimromi,litencatt,orzup)
    ・チームチキナン(konumashuri,tektoh,tackeyy)
    ・すくつま(macs,mics)
    ・By end of Sunday(tkak,TakiTake,hihihiroro)
    ・indo8(kono8,nakack,taisho3)
    ・こい☆だま(stsn,nabetama,eddy)
    ・\(^o^)/オワタ\(^o^)/(ko_chan,yu_kun)
    ・Yo(tomoasleep,ganmacs,idegn)
    ・giga3(鳥羽まこと,十和さくら,倉橋辰巳)
    ・ちーむべーこん(k_7016,haraheniku,imagawa_yakata)
    ・毛モノフレンズ(tarotech200 ,tarawo,POOL5)
    ・buono(fnwiya,matsu7874,aito)
    ・新入生&卒論(ak1t0,tkmru,fopen)
    ・team giroppon(s.s,t.r,k.s)
    ・hetenko(oppai,henteko,anoworl)
    ・DCL1(shimabukuro,yoshiro,teikouyou)
    ・umtb(KeisukeUmezawa,Yusuke Mori,)
    ・showwins(showwin,fujimisakari,denzow)
    ・scoutyインターンず(coffeemountain,gragragrao,RyoF)
    ・座るだけのコンテストってな~んだ?(OKeiGo,@shora_kujira16,mayoko)
    ・グッパノソロイ(minami,oshibori,TIke)
    ・坂寝(kal,neguse,saki)
    ・野田.js(plain,saggggo,choki)
    ・即興パフォーマンス(tkzwtks,hitode909,akiym)
    ・かもねぎ(ムラタイガー,カモ,)
    ・社畜の巨人(YKK,ISB,SZR)
    ・トップガン(bakaming,kumagi,hisaharu)
    ・your_rope(imishinist,kpppn,y-mattun)
    ・FCCPC_ravina(hadrori,ponyopoppo,そういち)
    ・moku2(shunshunke,inouekoichi,tsutsu)
    ・ホテル・カリフォルニア(kzbandai,jackchuka,at-ishikawa)
    ・JD(odan,二酸化カメレオン,kagami)

    質問などは Twitter @isucon_official までお願いします。DMでのやりとりも可能です(どなたからでもDMを受け取れるようになっています)。メンバー変更、参加日程の変更は予選前までにご連絡ください。


    皆さんのご応募、お待ちしております!
    Read more...

    ↑このページのトップヘ