ISUCON9 予選敗退した #isucon

今年も ISUCON の予選にでた。

今年は、去年のチームメンバーの都合が合わずに新規で、社内で募集してチームを作って参加した。
メンバーは @ykarakita@tak_wak_dev でチーム名は ウデムシlab 。
二人は初参加だったけど、事前練習をすることができずに、ぶっつけ本番となってしまった。


アプリの改善は二人に任せつつ、下回りをザクッと対応する方針で進めた。

やったことメモ

  • ruby 実装に変更
  • nginx のログを ltsv 化
  • alp に食わせて必要なタイミングで共有
  • nginx -> ruby 間を unixsocket に変更
  • mysql 用の instance に変更
  • mysql slow log の確認

アプリの改善の方は

という感じで、 N+1 を潰す作業に追われてしまった様子だった。

あと、途中で オフィスに誰か来たなと思ったら LINEからきた人だった


最終スコアは、 3910イスコイン で惨敗だった。。

f:id:tknzk:20190909001620p:plain


初参加の二人に ISUCON の楽しさをしってもらえたので、来年も、がんばるぞ..!
運営の皆様、ありがとうございました!

isucon.net

builderscon tokyo 2019 に行ってきた #builderscon

今年も Discover something new! ということで builderscon に行ってきた。

https://www.instagram.com/p/B1vfxTCj7NQ/ 今年も #builderscon の季節がきた

前夜祭

  • 技術の無駄遣いすごい
  • 残念なセッションがあったのは残念だった

1日目

  • B2B SaaS のテナント間のデータのやり取り難しそう
  • DB のバックアップ大事ですね 大事ですね
  • WebAuthn 取り入れる場合に UX やっぱりそうなりますよね
    • 一般に普及するまでどのくらいかかるんだろう
  • TracePoint マジ TracePoint
  • JIT すごい
  • Kyash さんすごい。胆力いりそう。Message Bus すごい

懇親会

  • 同じ眼鏡の人が3人あつまった! なぜ..

2日目

  • 式年遷宮を4年ごとに繰り返しているのすごい
  • 作り込みすぎないとかマネージドにふるとかの勘所
  • Elixir ちょっとさわってみよ
  • スーパーカミオカンデ、すごすぎて語彙失った..
  • Profile! Always measure first
  • RLS 検証してみたい
  • 時間を扱うの大変そう

見本市

まとめ

  • 知らないことを知れたので今年も良かった。
  • B2B SaaS のセッションが複数あって、MTWAの盛り上がりを感じた
    • また、知見の共有とかしてみたいなあ

終わり

  • 登壇された皆様、運営チームのみなさま、ありがとうございました!
  • また次回も参加するぞ!

builderscon.io

ISUCON8 予選敗退した #isucon

今年も ISUCON に出場した。

去年と同じチーム(ウデムシマニア) で出場できたので、今年は事前の練習などはせず、ぶっつけ本番で予選となった。 ISUCONを初期からみていた勢としては、どっかで観たことあるなあと感じる予選の問題だった (ISUCON2のアンサーだった模様)

チーム内の役割は去年と同様に、アプリ改善はチームメンバーに任せつつインフラ周りや db 周りをみた。 自分がやった内容としては下記な感じ

  • ruby 実装に変更
  • db を別インスタンスへ移動
  • mysql の slow query の抽出
  • reservations テーブルの非正規化
    • 初期データの調整
  • /etc/my.conf.d/server.conf の変更
  • redis 投入
  • 細かいクエリの削減 (投入できず)

初手で h2o じゃんとなってしまい、、ログ収集の手をそうそうに停めてしまったのが、今から考えると、それがベンチの分析がうまくできなかった要因だった。。 時間があるタイミングで、手に馴染んでる nginx などに入れ替えるべきだった。

去年は、途中でブレークスルーが起きてスコアがバキッと上がるポイントがあったが、 今年は、ずっとブレークスルーが起きず、スコアが停滞し続けてしまい、最後の1.5時間ぐらいで駆け込みでスコアが少し伸びただけであった。。。

get_events / get_event の処理が改善できず... ベストで 4,258 で 最後は 3,120 で終了で予選敗退となった...

おまけ

オフィスで3人で作業していたら、急にオフィスのドアが開いて、忘れ物を取りに来た同僚に写真を撮ってもらった

https://www.instagram.com/p/Bnyy-2shG9C/ ISUCON

おわり

今年も、力及ばず予選敗退になってしまった。。。来年こそは予選突破したい! 運営の皆様、ありがとうございました!

isucon.net

builderscon 2018 tokyo に行ってきた #builderscon

今年も Discover something new! ということで、前夜祭から行ってきた。

# 前夜祭

  • やっぱり闇の話はすごい...
  • ピカピカ光るなにかほしい!
  • ロボットボールって作れるんだ..!

# NAFUDA
https://www.instagram.com/p/BnY49cVh2kK/
とりいそぎ設定した #builderscon

# 1日目

  • envoy 便利そうだなあ
  • 謎ガジェットの原価...

# 2日目

  • Excelまじやばい
  • Excel便利すぎる...
  • 会社の同僚の purintai の登壇を見守りつつ楽しんだ

# おまけ
同僚と記念撮影した
https://www.instagram.com/p/BndQA6kBCyP/
builderscon.io#builderscon twitter/instagram:@hdeinc

# まとめ

  • 今年は、勤務先がスポンサーしたこともあって、同僚とワイワイ過ごせた
  • 失敗とか闇とかの話はぐっとくるものがある
  • NAFUDAハックするぞ!
  • 登壇されたみなさま、運営チームのみなさま、ありがとうございました!

builderscon.io

ISUCON7 予選敗退した #isucon

今年も ISUCON の予選に挑戦した。
また転職したので、社内でメン募を行って、エントリした。
チーム名は ウデムシマニア。
今回は他の2人が初参戦だったため、9月末の土曜日に会社に集まって事前練習を一度行った。

予選の内容は、isubata なるチャットサービスを複数台構成で最適化するものだった。
メンバーの役割分担は、SmartHRのテックブログに書いてある感じで作業をした。

ログをプロファイルしたり、ベンチマークのログから、画像の配信がネックであることが読み取れたので、画像を MySQLから取り出して、
各サーバにファイルとしておいて nginx でserve してということをしたりして、スコアはそこそこ伸びたものの、画像を304で返すことができずに終了してまった。
画像をnginx で返すことはできていたものの、初期のファイルの書き出しを /initilize で行っていたため、各サーバのファイルのtimestampがバラバラかつ、
ベンチマークがアップロードするファイルを、各サーバにscp する際も timestamp のコピーを忘れたので、cacheが全く効いていなかった...

複数台構成にした際に、画像を一つの サーバから配信する方法というのが、 実務ではS3に頼り切ってるため、全く手が出せなかったのも大きかった。
(goofys で S3 mountしちゃうとか考えたけど、それは、明らかにレギュレーション違反だったので、、、)
NFSは遅いしそれ以外でというのが全く思い浮かばず、、
予選突破された方のブログを読むと、nginx でやったり、WebDAVでやったり、 varnish でやったりと、やり方はいくらでもあるようだったので、明らかに実力不足だった。

あと、puma を unixsocket で 起動したものの、 nginx 側の設定がうまく行かず、結局 port を listen する方式のままだったのが悔やまれる。。

また、ベンチマークの結果のログメッセージをうまく読み取れておらず*1、それに引きづられてしまって、時間を使ってしまった。

こまかな作業ログは、こちら GitHub - meganemura/isucon7
ただし、nginx の設定をrepository に入れ忘れてる。。


スコアのログ

time score
2017-10-22T13:07:23 3971
2017-10-22T13:13:14 2879
2017-10-22T13:21:50 3965
2017-10-22T14:51:32 5837
2017-10-22T15:23:30 5619
2017-10-22T15:37:54 5843
2017-10-22T15:45:28 6068
2017-10-22T15:47:19 3948
2017-10-22T15:52:07 6081
2017-10-22T15:59:50 10666
2017-10-22T16:11:26 18030
2017-10-22T16:14:56 13780
2017-10-22T16:36:34 22387
2017-10-22T16:43:15 22635
2017-10-22T16:46:38 23097
2017-10-22T16:52:13 24015
2017-10-22T17:02:05 23295
2017-10-22T17:10:27 25863
2017-10-22T17:11:39 29664
2017-10-22T17:21:13 28363
2017-10-22T17:25:18 26061
2017-10-22T17:35:08 40704
2017-10-22T17:50:36 39790
2017-10-22T17:53:05 32632
2017-10-22T18:02:46 31570
2017-10-22T18:04:44 34949
2017-10-22T18:08:33 31768
2017-10-22T18:10:40 35023
2017-10-22T18:12:13 33783
2017-10-22T18:17:32 18398
2017-10-22T18:25:05 23806
2017-10-22T18:30:03 20030
2017-10-22T18:34:14 37193
2017-10-22T18:37:00 36867
2017-10-22T18:41:14 30252
2017-10-22T19:05:42 33042
2017-10-22T19:11:29 35268
2017-10-22T19:14:03 33025
2017-10-22T19:23:54 36749
2017-10-22T19:26:25 41020
2017-10-22T19:31:08 38828
2017-10-22T19:37:23 40640
2017-10-22T19:47:06 34930
2017-10-22T19:51:07 41707
2017-10-22T19:52:53 54367
2017-10-22T19:55:38 45560
2017-10-22T20:03:02 52380
2017-10-22T20:09:49 49159
2017-10-22T20:15:11 47085
2017-10-22T20:17:06 36081
2017-10-22T20:18:40 39018
2017-10-22T20:21:15 52990
2017-10-22T20:23:55 41478
2017-10-22T20:25:18 44206
2017-10-22T20:32:40 45805
2017-10-22T20:38:38 55714
2017-10-22T20:42:23 39386
2017-10-22T20:43:40 45687
2017-10-22T20:47:03 42989
2017-10-22T20:48:23 47609
2017-10-22T20:49:36 39142
2017-10-22T20:51:03 43979
2017-10-22T20:55:37 37914
2017-10-22T20:58:21 41095

f:id:tknzk:20171023204340p:plain

終結


こんな感じでベストスコアとしては、 55714 となりました。
ただ、再起動時に redis が起動してなかった模様で、予選結果としては、 fail ということが最終結果でした。。。

余談

予選中にオフィスの扉が開いたと思ったら、社長がやってきた。

予選のスコアがいまいち伸びておらず、社長の相手を無下にしていたら、寂しそうに蒙古タンメン中本に行くと言って去っていきました...

おわり

今年も、力及ばず予選敗退になってしまったけど、チームメンバからは、絶対来年も出たいという気持ちを得られたので、次は予選突破したい!
予選で複数台構成の問題をつくったり、そもそものサーバのセットアップなど、運営の皆様、ありがとうございました!


isucon.net

*1:当日レギュレーションの読み込み不足

builderscon tokyo 2017 に行ってきた #builderscon

Discover something new! ということで、前夜祭から行ってきた。

前夜祭

前夜祭の技術撤退スペシャルは、当時の思い出も蘇って「わかる」「ぐえええ」などという気持ちでて、大変良かった。
表には出ない話を聞けて本当によかった。登壇者の皆様ありがとうございました。

初日

  • Electron でデスクトップアプリを作りたい気持ちが高まった
  • Data is 神
  • 1Tbps の DDos
  • k8s はやっぱり実際につかってみないとわからないので、使っていく
  • QRコードが分割できることをしれた
  • しゃもじ大喜利すごい

2日目

  • PHP 便利!?
  • サーバーサイドKotlinは Javaで実装されている APIサーバに導入というのはやりやすそう
  • CodeBuildの使い所はありそうな感じかなあ
  • 物理製品の生産は大変。。keyboardio 欲しくなった
  • HHVM + Hack is 力

その他

  • 帰宅後、妻になんかよくわかってなかったけど、夫にとってのフェスだったんだねと言われた
  • バックとTシャツが何故か4セット手元にあった
  • バックのQRコードの謎をといた

まとめ

  • 知らなかったこをしれたし、高まったので、やっていく!
  • 次回は Proposal出したい!
  • 登壇されたみなさま、運営チームのみなさま、ありがとうございました!

builderscon.io

builderscon tokyo 2016に参加した #builderscon

チケットが3hで売り切れたbuilderscon tokyo 2016 に行ってきた。
会場がredbullさまということで飲み物の持ち込み禁止でfree redbullだった。

f:id:tknzk:20161203174233j:plain

個別の講演内容は割愛して、感想を箇条書きでかいてみる。

  • 生のmattnさん
  • windowsつらそう
  • go便利
  • vimつよい
  • 工場の生産管理を自動化するの楽しそう
  • automatic smile cameraいい
  • 子供の成長はあっというま
  • 親バカハックとてもいい
  • ゲームAIすごい
  • プレゼンの濃度がこすぎた
  • docker swarmつらそう
  • code自動生成はツラミからの開放になるのか
  • k8s時間とって触ってみる
  • FPGAがどんなものかを理解するところからはじめる
  • KHHH問題

講演がいろんなレイヤーの物があってとても刺激になった
次回はもっと規模が大きくなるとのことなので、参加したい!

運営の皆様、登壇の皆様、ありがとうございました!!

builderscon.io

2017.tokyo.builderscon.io