りぃねこ書記

rin_nekoが極稀に記事を書いて行く…

いすこんはちの思い出

いすこんはちに参加したのでその記録を残します。
割とふざけてるので真面目なキモチで読まないでください。

チームメンバー:
@_remew_ (以降、れみゅー)
@tanishi345 (以降、宮森あおい)

言語:
nodejs

役割:
れみゅー
netdata準備, h2oの設定, アプリケーションの改善

宮森あおいちゃん
netdata準備, h2oの設定, アプリケーションの改善

ぼく
ピザの注文,
道路脇の小石,
何もしてあげられることがないからうたを歌う,
nginx, 複数台構成設定

開始前

二人が諸々の準備を進める中、僕はピザの注文を進める。
他に何かできることは無いだろうか…。

開始直後

やっぱり3台構成か、となる。
二人がヌルヌルサクサクとsshの公開鍵の配置や設定を進める。
慣れていない僕がやったことはlsとcdコマンドを使うことくらいだろう。

序盤

僕(/etc/nginx/が無い…ハゲる…えっ、じゃあfastifyが直受け?)
れみゅー「これはh2o」
宮森あおい「あーね」
僕(なぜ水の話で二人共盛り上がれるんだ…?)「アノ…h2oてなんですか」
れみゅー「あんまりいじらなくても大分早いサーバーアプリだよ(イケボ)」
僕「天才」

早速僕は無知を露呈していく。

途中、みゃーもりがnetdataの用意を進めてくれるがうまく動かない。
途中でnetdataの用意は僕にバトンタッチ…と思われたが僕がもたついていると

れみゅー「これはね、h2oからパスするのがいいよ(イケボ)こんなふうに…ね(イケボ)」
宮森あおい「おーっ、動いた。れみゅーすごい、これはね、惚れた」

あ↑あ↓あ↑あ↓あ↑あ↓〜↑〜↓〜↑〜↓〜↑
僕は道路脇の小石だった。
ただの小石と違うことといえばlsとcdが使えることくらいだろう。
二人が眩しい。眩しくて仕方がない。
僕はただ、二人の輝きを最大限に引き立てる小石で有りたい。
最上級A5和牛ステーキを引き立てる塩でありたい。
宮森あおいちゃんの運転する車のタイヤでありたい。
そういう気持ちになった。

お昼前

netdataのCPUゲージ「のわわわわわ」
みんな「これはCPUがつらい(確信)」

大体この時点では1000くらいのスコア。

僕はlsとcdを駆使し、mysqlの設定とかほげほげやったり、チラチラとアプリケーションコードを見たりしている。
れみゅーと宮森あおいちゃんはペアプロ状態でh2o設定やアプリケーションコードの確認。
なかなかどう動けば良いのかわからん。
とりあえず僕はベンチのたびにnetdataを見つつ「これmysqlmysqlがCPU食ってるよ」とmysqlCPU使用率異常通知おじさんをしていた。

お昼直前にたしかh2o→nginxをやった(れみゅーとみゃーもりが)と思う。

お昼

ピザのお兄さんが部屋のインターホンを鳴らす。
お昼ピザ休憩の時間。激辛ソースが付いてきた。

ここにきて、エビアレルギーの宮森あおいちゃんがいるにもかかわらず
半分がエビマヨネーズピザであることに気づく。
ウルトラミス。ごめんなさい。

ピザを食べながら三人で軽く今後の予定などを話した。

お昼後

ここで僕はnginxのチューニングへ。
二人にアプリケーションコードの改善を任せまくり状態になる。
僕がアプリケーションコードで把握していることはといえば、すんごいN+1の香りが漂ってることくらい。

夕方

黙々とnginx.confの各設定をいじるもそこまで変わらず。
アプリケーション班の二人も黙々と闘う。

宮森あおい「う〜ん…りんちゃん複数台構成お願い」
やはり1台では厳しい様子だったため、みゃーもりがそう提案。
僕は複数台構成の準備をネチネチと進める。

途中、アプリケーション班がえいやっとやってくれて2〜3000点(だったと思う)
僕は使っていなかったサーバー2つで、片方にはwebアプリ、片方にはwebアプリ+DBを準備。
initializeリクエストはdb初期化shファイル内のmysqlコマンドのオプションをいじりゴリ押す。
まぁ特に問題なく動いているのでここでもう一台の方のnginxでロードバランシングする。
ここでスコアが4000を超え、テンション爆上がりイェイイェイ状態に突入。

アプリの方でも諸々を調整して頂き6000くらいになったところで僕が
「webアプリ+dbのやつはdbオンリーにして、他2台でwebアプリって感じのほうが良くね?」
と発言。
やってみたら8930くらいになる。
イェイイェイ。
ここで終わりの時間が近づく。
もうできることはなかろう…。
みんなで一緒にヤドンを可愛がりながらISUCONは終了。

結果: 0(fail)

ちゃんと再起動確認しような✋

反省

個人

  • UNIXコマンドもっと覚えなさい
  • NGINXのチューニング力付けなさい
  • コードリーディング能力付けなさい
  • 複数台構成力を上げなさい
  • lsとcdだけしか使ってなさそうに見えるが嘘、嘘は良くない

チーム

  • ローカルで開発環境作る力を得る(これができてれば大分違ったかもしれない)
  • コードリーディング能力上げる
  • もっと自動化できそう、shellファイルとかで
  • 事前準備不足、ちゃんと過去問練習しておくべきだった
  • 再起動確認しような

ちゃんと一日一万回感謝のlsをしていこうと思う。

終わりに

楽しかった。
でも、まだまだであることもよくわかった。
来年も出たい。強くなりたい。
読んでくれてありがとうございます。

れみゅーとたにし、ありがとう。