ISUCON10 に参加して惨敗した。そして当日できなかったことをリベンジした。 – New Relic編 –

  • 投稿者:
  • 投稿カテゴリー:event / PHP

ISUCON10に参加して惨敗した。
「ISUCON10 参加チーム限定で New Relic 特別無料ライセンスを提供します。」とのことで
PHPアプリケーションをNew Relicで監視したかったが、当日できなかったためリベンジした。

まずは本サーバにインストールしてみる

本サーバはPHPパッケージを利用して動作している。
インストール手順に従うことで、PHPアプリケーションのデータを取得できた。
※ただし途中ライセンスキーとアプリケーション名を聞かれたため、最後の置換コマンドは実行していない。
 (コピペせず、apt-getではなくaptを利用したからかも)




ISUCONサーバにインストールしてみる

ISUCONではPHPパッケージを利用しておらず、ISUCON専用PHPが動作している。
そしてPHPモジュールは/home/isucon/local/php/lib/php/extensionsにて管理されている。

# /home/isucon/local/php/bin/php -v
PHP 7.4.9 (cli) (built: Sep 11 2020 11:19:26) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies
    with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans

# /home/isucon/local/php/bin/php -i | grep "^extension_dir"
extension_dir => /home/isucon/local/php/lib/php/extensions/no-debug-non-zts-20190902 => /home/isucon/local/php/lib/php/extensions/no-debug-non-zts-20190902

ここにnewrelicのPHPモジュールを配置することで、PHPアプリケーションのデータを取得できた。

# echo 'deb http://apt.newrelic.com/debian/ newrelic non-free' | sudo tee /etc/apt/sources.list.d/newrelic.list
# wget -O- https://download.newrelic.com/548C16BF.gpg | sudo apt-key add -
# apt-get update
# apt-get -y install newrelic-php5
# cd /home/isucon/local/php/lib/php/extensions/no-debug-non-zts-20190902/
# ln -s /usr/lib/newrelic-php5/agent/x64/newrelic-20190902.so newrelic.so
# chown -R isucon:isucon newrelic.so
# vi /home/isucon/local/php/etc/conf.d/newrelic.ini

extension = "newrelic.so"

[newrelic]
newrelic.license = "d5exxxxxxxxxxx"
newrelic.appname = "Isucon10"
newrelic.daemon.logfile = "/home/isucon/local/php/var/lognewrelic-daemon.log"

# chown isucon:isucon /home/isucon/local/php/etc/conf.d/newrelic.ini
# systemctl restart isuumo.php.service

当日悩みの種だった nazzote に時間がかかっていることが一瞬でわかった。

おまけ

ここ数年参加しており「あれってどうだったんだろう、でも環境ないし、確認できないな」ということ何回かありました。
今回はCyberAgentさんやNew Relicさん、運営さんのご好意のおかげで、鉄を熱いうちに打つことができました。ただただ感謝。