2019年05月10日(金)

RubyKaigi 2019 Day2

yu-sato

GMOインターネットのyu-satoです。

 

RubyKaigi2019の2日目に参加してきました。

 

弊社は3日間参加していますが、本日は第2陣メンバーが参加です。

 

1日目は目標を達成できなかったのでリベンジ?として、
いつも一緒に働いている相棒を伴い、意気揚々と現地に入ります。

 

今日の題材は、

「アプリケーション高速化チャレンジ」
Rubyで動くWebアプリケーションの高速化に挑みます。
実行速度307msecから150msecにできるのか?!

 

「フッ、余裕だぜ!!」※空元気・・・・

 

現地で、環境セッティング時に事前準備していたID/パスワードでログインが
うまくいかなかったりいきなりのトラブル。
ようやくログインして現状を把握する。

 

どうやら500エラーを起こしてるな。
各サービスの起動状況を確認したり、ログなどを見てみる。
うーむ、原因が見つからん。

 

調査のため、ひたすらググる、ググる、ググる・・・・
設定いじる、いじる、いじる・・・・
・・・・・

 

◆やったこと(前半)

・SupervisorのConfigファイルを確認し、設定を確認
→ファイルのディレクトリやLogファイルの格納場所を特定
・本体ファイルを実行し、WebブラウザからWebアプリにアクセス
→『MySQL client is not connected』が表示され正常に起動しないことを確認
・MysqlのLogファイルを確認
→『MySQL client is not connected』のエラーを確認。原因については特定できず。
・Mysqlが起動しているか確認
→正常に起動していることを確認。念のためRestartを実施するが状況変わらず『MySQL client is not connected』のエラー
・Apache benchmarkを一時的に停止してもらう
→500エラーが解消しWebアプリケーションが正常に動作することを確認
・Mysqlの同時接続数やTimeOutの設定を確認し、許容値を大きめに設定しBenchmarkを再度スタートさせる
→状況変わらず500エラーが発生

 

エラー解消されず・・・・
依然として実行速度変化なし!

 

ブースに見学に来てくださる国内外のギャラリーの方々、
出題者が勝つか、挑戦者(私達)が勝つか、どんどん投票してくれています。

 

「頑張ってください」

(私)「ありがとうございます!」※すでに全力じゃー

「応援しています」

(私)「まかせてください、勝ってみせます」※やべー原因わかんねー

・・・・・

 

お昼ご飯を食べつつ調査に没頭していると、なぜかわれらの上司である部長が来訪。

(部長)「進捗はどう?」

(私)「部長!エラー解消されず、手詰まりであります」

(部長)「どれ」

部長・・・カタカタと調査・・・・

(部長)「このプロセス、〇しちゃっていい」※放送禁止用語

(私)「いいっすよ」

(部長)「じゃ、kill -9」

・・・・・

 

500エラー消失!

実行速度・・・向上!

神様仏様部長様!

 

エラーが解消したことで、高速化に向けて一気に進めてやるぜと意気込み、
コネクション数の調整、キャッシュ設定などいじってみる。

体感速度は速くなったものの、なぜか実行速度が「4桁」表示に!

・・・・

 

◆やったこと(後半)
・部長参戦
・アドバイスより、複数あったプロセスを削除しアプリケーションを再度実行
→根本的解決にはなっていないものの500エラーが解消
・処理速度高速化のためにソースコードを再度確認
→高速化できそうな部分は特定できず
・rack-cacheを導入し、設定をしてみる
→処理速度が4桁になってしまったため設定を削除しもとに戻す

 

一時的に210msecまで向上させたりしたものの、
制限時間までに目標である150msecは達成できませんでした・・・

「燃え尽きた・・・真っ白に・・・」

orz・・・・

今回の反省点として、
・環境や設定状況の把握に時間を要してしまったこと
・試した対応では劇的な速度向上が望めなかったこと
・エラーの根本原因が未解決であったこと
が挙げられます。

 

事前の勉強不足でした、次回リベンジします。

 

Rubykaigi Day1/Day3の記事は下記

RubyKaigi 2019 Day1 コンテナ軽量化チャレンジ

RubyKaigi 2019 Day3 k8s&Istioチャレンジ

この記事をシェアする

関連のおすすめ記事

CAREERS
エンジニア積極採用中

GMOインターネットグループでは、積極的な採用活動も行っています。GMOインターネットグループのエンジニア採用情報は下記リンクからご覧になれます。