do7be.exports

エッセンシャルガチ草トメィトゥ

社内ISUCONで猛威を振るってきました

先週の1/25,26の2日間にかけて、社内ISUCONが開催されていたので参加してきました。

1,2人のチームで2日間のうちどちらかの日に参加し、4時間かけて本家ISUCONのような課題WEBサービスのチューニングを競う、という内容です。

出題者は弊社エバンジェリスト@takashabeです。

出題サービスのソースコードとベンチマーカを載せておきます。

github.com

作業内容はGitHubにpushしておきました。

github.com

当日の振り返り

参加者は合計15人。1日目に影響され、2日目にエントリーした方が何名かいました。

僕はスケジュール上2日目に1人で参加しました。と言っても実は全員ぼっちチームでした。チーム名は「https://goo.gl/6YBEht」です。短縮URLをチーム名にしました。

チューニングのお題としてはISUCON5と同じような構成で、Twitterを模したサービスでした。指定されたEC2に入るだけだったので、そのへんは本家よりカジュアルに参加できる感じでよかったです。

作業内容

とりあえずサービスに紐付いている動作中のプロセスを確認し、Gitなどの環境を構築しました。言語は初期がRubyになっていたのでsystemdでPHPに切り替えました。言語を切り替えただけでスコアが500→1000に。

テーブルを確認し、必要そうな箇所にインデックスを貼って見たらなんとスコアが1000→2000に。

続けてフォロー一覧やフォロワー一覧ページの無駄に叩かれるクエリを最適化していきました。foreachで何度も叩いているクエリを結合して1回のクエリで済ませるようにしたり、count文にしたり。

このへんで約2時間。スコアは3000まであがりました。なんとこの時点でのトップを独走しており、2位以下は1000点に達していないような状況でした。

ここで余裕が出てきたので、Redisに載せ変えようと考えpeclyum installしました。

するとなんとスコアが2500に!使用中のモジュールまで更新されたかなにかで以降スコアが下がったままになってしまいました。しかもうまくPHPにてRedisを導入できず、結局諦めミドルウェアまわりのチューニングにとりかかりました。

nginx, mysql, カーネルまわりのチューニングをしましたが、スコアは伸びず。今回のサービスは通信量が少ないため、ボトルネックはネットワークではなくクエリにあったためです。

と、ここでスコア4000を叩き出すエンジニアが登場。

結局最終的にはスコア2500でフィニッシュ。

最終結果

1位は@pe10:3000点くらい

2位はなんと、僕でした!

4000スコア出していた人は再起動後にFAILになり失格だったそうです。

惜しくも2位でしたが、2日目1位となり、amazonギフト券をいただきました!!!!

f:id:do7be:20160130163852j:plain

感想

ISUCON5に参加した方々が総じてスコアが高く、やはりアドバンテージがあったのだと思います。

言語切り換えやベンチマークの動かし方、チューニング対象の絞り方などは、ISUCONならではな感じがします。

スコアが高かったのもありますが、こういうイベントを楽しんで参加することができたことが嬉しかったです。

今後も本家ISUCONや何か面白そうなイベントには参加していきたいと思います。

エバンジェリスト、お疲れ様でした。

勉強会を主催するということ

本記事はマイネット Advent Calendar 12日目の記事です。

3日目9日目も書きました@do7beです。

何の話か

エンジニアのみなさんは社内・社外問わず勉強会というものにこれまで少なからず一度は参加したことがあるかと思います。

中には企業が開催しているイベントもあるでしょう。しかし、勉強会やイベントの多くは数名または個人が主催しています。みな一般のエンジニアです。

今回は僕が社内勉強会を開いた経験から、「なぜ開くのか」「何に気をつければいいのか」を書いていきたいと思います。

社内勉強会を開催した動機

www.slideshare.net

社内で職種問わずLT大会というものを主催していたのですが、第8回目でのクロージングにて、YAPCで「聞きたい内容があれば自分が開催しろ」という言葉に衝撃を受けたという話をしました。

弊社ではJavaScriptに関するイベントなどがなく、JS好きな僕としては非常にもどかしい気持ちがありました。そこで、前にブログに書いたJSワークショップを開催することになりました。

主催側が気をつけること

  • 目的
  • 目標
  • 内容

は、はっきり決めておき公開しましょう。「適当に開いてみんな適当にやればいい」というスタンスだと続きません。(何度か失敗した)

また、参加側は基本的にレベルがバラバラです。あらかじめレベル感がつかめる情報を公開するか、勉強会中にフォローできる余裕を準備しておきましょう。

勉強会を開催してみての所感

個人で開催すると、資料の準備などが大変なので何度も開催することが困難になってきます。数人で持ち回りをローテーションするほうがいいと思います。

また、よほど意識が高いか時間に余裕がある集団でない限り、なかなか参加者は増えません。社内のいろいろな方を誘いましょう。そのうち社外からゲストを招いてもいいと思います。

まとめ

勉強会やイベントに参加することはエンジニアにとって得るものがありますのでいいと思います。しかし、自分が本当に知りたい分野や議論したい内容に関しては、誰かが開いてくれるのを待つのではなく、自分から開いてみてはいかがでしょうか?

いきなり社外勉強会を開くのはハードルが高いと思いますので、まずは数名で、仲の良い方など誘って開催してみると良いと思います。

備考

過去のJSワークショップの資料を載せておきます。

開発合宿に行ってきた

f:id:do7be:20151102003259j:plain

もう行ったのは9月だからけっこう前だけど…

社内LT大会で発表した資料があるので貼っておきますね。

www.slideshare.net

社内のエンジニアで集まって箱根に行ってきました。まあ半分旅行みたいなもの。

とはいえ、書いてある通り3時までラウンジで開発してたんですがw

余談

LT大会といえば、8月くらいにES6の話もしたのでそちらについても載せておきますー。

www.slideshare.net

JSワークショップ#2を開催した

前回に引き続き、JSワークショップを開きました。

f:id:do7be:20151025163920j:plain

今回の参加者は僕を除いて6名。段々と増えてまいりました(*^^*)

今回やった内容は、NPM、gulpです。

ワークショップ資料はGitHub上に置いてありますので、よければご覧ください。

github.com

社内でJavaScriptワークショップを開いてみた

どうも、JSが大好きなど鍋です。

しかし残念なことに、社内にJSを語る友人がいない…(シクシク

そこで思い出しました。かのフランス国王ルイ16世の王妃の言葉を。

JSを語る相手がいないのなら作ればいいじゃない

てことで社内でJSのワークショップを開いてみました。

f:id:do7be:20151017231014j:plain

初回の参加者は4名。こじんまりとした会議室でワイワイやりました。

f:id:do7be:20151017231018j:plain

今回の内容はNode.js。

Nodeのインストールとか、コンソールで簡単に動かせるよねーとか、Socket.ioっていうの使うとこんなリアルタイムなサービスつくれるんだよーとか。

とりあえずの導入編でした。

github.com

あとは僕が作ってたLGTM-HUBの話とか、NPMで公開してるnode-bkupの話とか、脱線してLPICの勉強するとLinuxの知識つくよーとかそんな話してました。

これでだいたい1時間。

みんな「Nodeすげえ」ばかり言っていて、うれしくなりました。

とりあえず体力が続く限り毎週か2週に1回くらいのペースで開催していこうかと。

NPMモジュールでOSS活動してみた

OSS活動と言いつつ、しょぼいCLIモジュールをNPMに上げてみただけですごめんなさい。

www.npmjs.com

機能としては、cp -p hoge hoge.YYYMMDDをやるだけ。YYYYMMDDには現在日が入ります。

v0.0.1と書いてありますが、まあ普通に使えます。

今後オプションをどんどん増やしていこうかと思ってるので、そのうちバージョン上がってると思いますが使ってみてくださいな。

ちなみに今回参考にさせていただいたのは以下の記事です。

qiita.com

qiita.com

国会議事堂らへんで高い寿司を食ってきた

国会議事堂のすぐちかくで寿司を食べてきました。

tabelog.com

f:id:do7be:20151008233643j:plain

普通なら数万はいきそうなお店ですが、健康保険組合の力でなんと5000円で最高級コースが食べられるとのことで職場のメンツで行ってまいりました。

寿司と言えば日本酒!ということで別料金で注文しました。お酒も安いです。オシャレなとっくりですね。

f:id:do7be:20151008233649j:plain

はじめは白魚から。臭みが一切なく、非常に上品な味わいでした。

f:id:do7be:20151008233653j:plain

続いてお造り。右からカツオ、エビ、サワラです。左のやつは忘れましたw

サワラが本当においしかった。身もしっかりとしていたのですが、皮をほんの少しだけ炙っているようで、初めての食感に卒倒しそうでした。

f:id:do7be:20151008233658j:plain

お次は茶碗蒸し。表面にはかぼちゃのすり身がのっています。

f:id:do7be:20151008233706j:plain

そしてししゃも。写真だとわかりづらいかもしれませんが、本当にでかい!しかも苦味が一切ないんです!本当に!オスなのかわかりませんが、卵がなくても身だけの味わいで頭からしっぽまで満足できる一品でした。

f:id:do7be:20151008233720j:plain

出ました。うにいくらです。下にはご飯が敷いてあります。はっきり言います。死ぬほどうまいです。うにが…「プリッ…じゅわ~…」みたいな感じで、舌がうにになってしまったのかと錯覚するほどうにの風味が口の中に広がるんですね。

f:id:do7be:20151008233735j:plain

そして本命の握り!左下からコハダ、貝(忘れた)、ヒラスズキ、車海老、金目鯛、中トロ、赤身、ビントロです。

f:id:do7be:20151008233742j:plain

もう全てが芸術でした。あえてこの中から美味しかったものを挙げるとすれば、貝、金目鯛、中トロ、ビントロでしょうか。特にビントロは宝石でした。脂で誤魔化さず、引き締まった身そのものが深い味わいを持ち、それでいて後からやってくる脂がフィニッシュを引き立てていました。最高でした。

驚いたのが、高いお寿司ってシャリが崩れないんですね。でもご飯は潰れていない。これが板前の修業の成果なんだと、実感しました。

f:id:do7be:20151008233748j:plain

そして巻物と穴子と玉子、ゴボウです。玉子には本当に驚かされました。プリンのような食感でどうやってこの形状を保てているのだと。味は上品な洋菓子のようにほんのりと甘く、気分が良くなる一品でした。

f:id:do7be:20151008233759j:plain

蜆の味噌汁。これはもう一生飲めますよ。「会社のウォーターサーバから出てきてほしい」と口ずさむほどにソウルドリンクでした。

f:id:do7be:20151008233805j:plain

最後はデザートにみかんのシャーベット。

おいしかったんですが、驚いたのはスプーンの方。木製でヘラのようなものだったのですが、これを使うと本当にシャーベットが食べやすいんです。何を言ってるんだと思われるかもしれませんが、こういう細かいところまでしっかりと気配りができているいいお店だと実感しました。特にデザートって最後ですからね、気分よく帰ることができるようにとの心遣いだと思います。

f:id:do7be:20151008233809j:plain

そしてお店を出ましたが…

飲み足りなかったので同じビルのバー ブロッサムへ。

tabelog.com

ジョニーウォーカーラチナムラベルをロックで。

f:id:do7be:20151008233814j:plain

いい夜景を飲みながらこの酒をこの値段で飲めるなんて…健康保険組合さまさまだと気づいてしまいました。

まとめ

国会議事堂らへんでうまい寿司を食べたければ、いい健康保険組合に入っている会社に入ろう。