ISUCON8予選へ向けての雑な活動記録的なもの
はじめにやりました。
github.com
模試をやりました。
ConoHaに登録すればカンタンに立ち上げることができるのですが、学生でも有料です。
最も安い630円のプランにしてAmazonPayで支払えばそれ以上のお金の心配はいらないと思います。
github.com
地味な知見
チューニングのことはすごい人が色々詳しく解説してると思うので、書きません。
- 変更を加えたときはもちろん、ブラウザから触ってアプリの仕様を把握することは大事。このとき、パフォーマンスはあんまり気にしない。画像の表示が遅いかな?くらいしか、いつも僕には分からないです。仕様の把握が大事。
- 変更を加えたら必ずベンチマーカーを回して、作業ログを残していく。
- メンバーでドロップボックスペーパーに作業ログを書き込んでいくと便利。付箋がなければTrelloも便利。
- 必ずバックアップは取ること。nginx.confやmy.cnfの設定ファイルは同一ディレクトリにコピペしてnginx_backup.confのようにして残しておくとラク。
- ISUCON7予選問題においてベンチマーカーを回すと、DBの初期化が行われる(?)ので、それ以前に作ったユーザーのIDとPWは使えなくなった。
第1回模擬ISUCONの感想
@syukatsutopo さんにて模擬ISUCONなう。
— こーせー (@kou_sy) 2018年6月2日
使わせて頂き、ありがとうございます。 pic.twitter.com/59GnVcjmJR
isucon全く上手くいかない
— こーせー (@kou_sy) 2018年6月1日
やっと5000点超えたー
— こーせー (@kou_sy) 2018年6月2日
主に出来たことは環境構築をして、アプリケーションのSQL文を書き直した、DBへのクエリを効率化した、DBにインデックスを貼った、Unicornのワーカー数を増やしたぐらいのものでした。
出来なかったことは山程ありますが、解決できなかったボトルネックとしてはNginxに画像ファイルをキャッシュすることでした。
3人で話しながら1つの問題に取り組むことは楽しかったですが、僕も含めてまだまだパフォーマンス・チューニングの勉強不足でした。
個人的な課題としては、僕だけSequel ProでDBに接続することができなかったので原因を究明が挙げられます。
ISUCONってボトルネックを解決していかないとスコアが上がらないので、同じ言語実装の参加者はほぼ同じようなチューニングの手順を踏んでいくことになるんですかね。
そう考えると数学の問題みたいに、論理的にこれの次はこれをやるっていうのが決まっていくなぁなんて思っていました。
NginxとDBの勉強をやっていきたいです。それでは。
追記:
その後Nginxのエラーを解決し1万点を超えました。
Pokemon Terminal使えなかった問題が解決した
bash_profileに何回も書き込んでしまっていたPATHの設定を消して
PATH=/Users/k3/.Pokemon-Terminal:/Library/Frameworks/Python.framework/Versions/3.6/bin:
だけにしたら出来た.
複数書き込まれているとうまく動かないらしい.
kousy.hatenablog.com
ISUCONプロジェクト@沖縄の近況
どうも, こーせーです.
先日ISUCONチームを無事に結成することができました!チーム"SushiSobaRamen(仮)"です.
3人共違う学部(1人は情報系)ですが,なんとかやっていけそうです.
ところで,ISUCONに向けてのキックオフミーティングを先週Okinawa.rbでやりました.
記事をまとめようと思っていたら,先に素晴らしい記事が上がっていました.
ISUCON流れ
全体流れ
sshの設定で公開鍵はgithubにあげとく作戦
config設定(セッションが切れないようにするなど)
アプリケーションのコードをgithubにアップする
githubにあげたコードをローカルに持ってくる
ローカルでサーバーと同じような状態にする
ローカルでコードを修正できるようにする
ベンチマーク実行する
ブラウザから操作してみる
ボトルネックを探す
ローカルでコード改修する
環境にデプロイ
ベンチマーク実行する
ローカルでアプリを動かせるようにする状態にするのがなんとなく難しそうだった。
shimabukuromegの日記より引用です.
こんな感じでした.
相変わらずmegさんのまとめ力がすごいです.
僕が書こうとしていたことが,全て綺麗にまとまっています.
アプリケーションコードを触るところまでは,なんとかいけました.
そして今日はチームの3人で集まって,この流れをおさらいしました.
来週には模擬ISUCONが予定されていますが,まだ計測ツールの使い方についても演習不足という感じです.
チーム全員が計測ツール,
- htop
- alp
- myprofiler
- tig
あたりを使いこなせるようになることがまず課題ですね.
個人的には,予選突破したチームのコードを読んでいこうと思っています.
最近は遊びとして,A Tour of Goをやったり, Swiftを触ってみたりと楽しいエンジニアライフを送っています.
内定先のサポートによりRailsチュートリアルの解説動画も,無料で見られそうなのでそこでも勉強していこうと思います.
以上,5月になったので更新してみたの巻でした!
内定後の1年間の過ごし方
近況
Perl入学式やCODE BASEのおかげもあって、無事に目標だった東京のWeb系の会社に先月内定を頂くことが出来ました!
実は3月の終わりにはもう決まっていて、色々悩んだり就職活動に燃え尽きたりしていたのでブログには書かずにいました。
入社まで1年以上も時間があるせいで、なかなか決めきれなかったです。
就職活動が大変だっとはいえ、スーツを着ることもなく、ESや面接で頑張ることもなく、交通費が支給されないなんてこともなかったですね。
ランチも出ることが多かったですし。
エンジニア最高!って感じですが、売り手市場の今はビジネス職の新卒の人もこれくらいの待遇になって欲しいもんです。
振り返ってみると辛かったのは東京への飛行機移動での疲れ、花粉、電車移動、いつもと違う環境での生活(ベッドやお風呂)くらいですね。
今後
まず第一は大学生活ですね。
5月から毎月自分が発表をするゼミがあるので、それを乗り切りつつ、研究をすすめていくのが第一です。
しかし、それだけで終わりたくないです。
プロジェクト
第二にISUCONプロジェクトですね。
明日キックオフミーティングの予定です。
自身のスキル向上はもちろんですが、チームで何かを成し遂げるということをやりたいです。
ISUCONプロジェクトを軸に、エンジニアとしてのスキルをアップしていきます。
予選突破!
第三はEUの某国に1ヶ月ほど滞在するかも?!なプロジェクトです。
第四はセキュリティ関係です。某キャンプではありません。笑
第三と第四は確定次第、ブログで取り上げていこうと思います。
それでは、自由な学生の時間を大切に今後も色々と頑張っていきます。
Perl入学式に参加してみよう
これはPerl入学式春のブログリレー6日目のエントリです。
ここまでの記事一覧
1日目: Perl入学式
2日目: Perlがくしゅう帳(Rubyも)
3日目: Perl入学式で出来るXXなこと - Acme::AnaTofuZ->new;
4日目: cat2koban の 備忘録
5日目: unimarimo’s blog
参加したらこうなる
プログラミングやってみたい!でも、Perlってなに?よくわからん!
という状態で僕は昨年参加しました。
参加した結果は、最高だったと言わざるを得ません。
プログラミングに触れ、ギークな人の存在を知り、さらに勉強したくなります!
また別記事で書こうと思いますが、僕はちょうど1年前のPerl入学式から徐々にプログラミングを始めて先日東京のWeb系の会社に内定を頂くことが出来ました。
就職など関係ない人にとっても、もちろんオススメです。
仮に仕事や学習で使うことがなくても、プログラミングって(Perlって)こういうものなんだな、と少し分かるだけでも得るものはあります。
この5回で学べることはもちろん限られてはいますが、Perlという長く使われている言語に触れることができる貴重な機会です。
最近はProgate*1などの学習サイトのおかげでプログラミングは独学しやすくなってきてはいますが、教えてくれる人、聞ける人が周りにいると学習は加速します。
Perl入学式繋がりで知り合いも増えて、さらにさらに楽しくなります。
in沖縄の特徴なのですが、大学で開催していることもあって学生が多めです。
なので、学生は軽く講義の1つに参加するような気持ちで大丈夫です。
学生が多いと聞くと、社会人の方は「参加し辛いのでは?」と思うかも知れません。
しかし、学生のノリなど特にないので大丈夫だと思います!
小中高生でも、早くにプログラミングに触れられることは確実にいい経験になるはずです!
皆さん、この春に新しいことを始めてみませんか?