ISUCON6予選に参加してきました
こんにちは。
ようやくIT関係の記事が執筆できて嬉しいです。
今回はISUCON*16に参加してきましたので、その感想や、結果報告となります。
メンバー
同好会の2年生の先輩、私と同級生。
2年生1人、1年生2人という構成です。
当初、役割分担などはありませんでした。(後述)
目標
予選突破。
有意義な時間にする(わけがわからないまま終わらない)。
勉強したところ
当初予定していたのは
準備期間が2週間しかなく、私達1年生は言語は何も書けず、データベースも触ったことがない状況でしたので、Python*4だけに集中して勉強しました(大変でした)。
そのため、役割分担もありませんでした。
先輩も忙しく、一緒に作業する機会があまりなかったので、進捗を報告し、アドバイスを受けながら、勉強しました。
問題
今回は、nginx*5で構築されたwebサーバーを限界まで高速化するという内容でした。
レギュレーションはこちらです。
当日の流れ
当日は、Microsoft azure*6にてVirtual Machine*7を構築するところからの開始でした。
まず、DearmSpark*8ではVirtual Machineを構築できないという問題に気づくまで1時間かかりました(自分の確認ミスです、すいません)。
次に、Virtual Machineの接続ボタンが押せないというトラブルが発生、先輩がSSH*9コマンドで接続、windowsの私たちは、Tera Term*10で先輩のパソコンに接続して作業をようやく開始(ここまでに2時間)。
先輩から今回のサーバーの構造や、データ、通信の流れを聞き、大まかに役割を分けました。
- 先輩 全体を好きなように見てもらう。
- 同級生 webサーバーの.pyファイル*11。
- 私 nginxの設定ファイル。
私は、まずnginxにキャシュをできるようにし、ついでに同時接続数なども変更しました。
その場で調べた付け焼き刃の知識でやりました。
試しにベンチマークをしてみました(ポータルサイトがあり、そこにIPを送ると点数で返してくれます)。
結果は「Fail」内容は「初期リクエストに失敗しました。」となっています。
GET /initializeが5秒以上だと駄目だと、確認しました。
さっそく、試すが5秒かかっているようには見えないです。
一応、.pyも見ましたが、よくわかりませんでした。
先輩にも聞きましたが、わからなかったです。
余談
先輩がソースコードを見て楽しくなっていました。
途中から、権限がないためPOSTできないのをできるようにしたり、ソースコードをじっくり見て、先輩に解説してもらったり、JavaとPythonのクラスの仕様の違いなどの勉強会になりました(16時頃から)。
結果
Fail解決できないまま0点でした(Failは失格という扱いになるらしいです)。
感想
初めての大会でしたので気合入ってましたが、残念な結果でした。
特に「やってやった!」という感じがなかったのが悔しいです。
ですが、勉強会など有意義な時間でした。
また、Pythonを勉強するいいきっかけになったので、参加してよかったです。
来年は点を取れるように頑張ります。
運営の方々、ISUCON6に関わった方々、本当にありがとうございました。
*1:お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングの大会。
*2:関係データベース管理システム(RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)。
*3:OSの中核である部分。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋。
*4:プログラム言語の1種。
*5:フリーでオープンなWebサーバー。
*7:仮想マシン。1つのコンピューターで複数のOSを動作できる。
*8:Microsoftが提供する学生支援プログラムである。
*9:暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。
専門学生の日常
こんにちは。
昨日ブログを立ち上げたばかりで、可能ならIT技術の記事を執筆したかったのですが、現在、私がisucon*1のためにチームメンバーの家に泊まっており、手元にドキュメント*2がないため、今回は私自身の日常について執筆します。
「専門学生の日常ってどうなの?」という質問は、多く受けますので、この機会に「専門学生の日常が気になる方」、「専門学校への進学を考えている方」の助けになれば幸いです。
登下校
普段は、携帯で記事を読むなどで勉強しています。
試験や、大会前などは読書や、座れたらパソコンを使っています。
授業
専門学校の授業は、資格取得に向けての授業が大半を占めます。
ですので、プログラムを書いたり、サーバーを構築したりなどの授業は殆どないです。
(追記:専攻に分かれてから、実習は増えましたが自分で勉強済みのことが多いです。)
また、授業は生徒の足並みを揃えての進行ですので、進みは遅いです。
私は大体、自分の勉強9割、授業1割と時間を割いています(先生から見たら私も...)。
また、3:5:2で、「睡眠中の人」、「ゲームや音楽、自分の勉強と共に授業を受けている人」、「真面目に授業を受けている人」といった印象を受けています。
放課後
放課後は、ほぼ毎日、所属している同好会の勉強会に参加しています。
勉強会の内容は、
- 先輩方が講師となっての授業形式
- 大会に向けての自習形式
- 自習
の3種類です。
同好会は、実践的な内容が多く、先輩という先人から多くの知識や経験、大会参加という、新たな技術の勉強のきっかけを得ることができ、同好会を通して人脈、視野を広げられたことも、本当に助かっています。
同好会やサークルに入ることはおすすめです。
休日
休日は、ゆっくり寝たり、友達と遊んだり、プログラムを書いて遊んだりしています。
また、IT関連の催し物や、資格試験などにも参加しています。
まとめ
「専門学生の日常」というタイトルで執筆しましたが、あくまで私の日常です。
専門学生の日常の一例だということを理解してください。
更に詳しく知りたいことがある方は、コメント欄よりお願い致します。
IT関係ない質問も歓迎です。
はじめに
初めまして、こんにちは。
今回は、このブログの趣旨や、私自身の情報などを書いていこうと思います。
このブログは、「0から学ぶIT技術」の名前の通り、私自身、今年の4月に専門学生となり、IT技術の勉強を始めました。
入学前は、ネットサーフィン以外はパソコンに触れることがなく、IT技術といえるものは持っていないどころか、知覚さえしていない状態でした。
なぜITの道を選んだかなどの理由は、別の記事にて執筆予定です。
記事を書き始めた理由は、ローカル内のドキュメントが増えてきたということ、ドキュメントをブログにする際に、復習になると同時に客観的視点を意識して書くことで、勉強になると考えたからです。
ですので、このブログ内での記事は用語の説明など、0からIT技術を学ぶ方を意識したブログを目指していきます(自分自身の勉強になる)。
最後になりますが、間違いの指摘やアドバイス、質問なども歓迎ですので、気軽にコメント欄を活用してください。
及ばないところも多々あると思いますが、これからよろしくお願い致します。