ソフトウェアの正確なチューニングについて
システム管理のつぼ(2015年7月号)
フロンティア開発部 米山 陽介
OSSのパラダイム(部品の原則)の記事にも書きましたが、OSSは1つ1つが部品です。よって、OSSの設定はこれと言って決まったものはなく、他のソフトウェアや環境によって設定が異なります。特に、ソフトウェアの性能については注意が必要です。より快適なシステムにするためには、システムの性能要件を定義し、それに合ったソフトウェアのチューニングは必須となります。
例えば、zabbixとMySQLの組み合わせでシステムを構成したときのことを考えてみましょう。MySQLにはMySQL自体で使うメモリを調整する設定があります。最初、数件の監視から運用を開始したとします。その場合、メモリの設定を調整しなかったとしても、監視が数件なので問題なく動作します。しかし、サービスが拡大し、監視設定が何百件、何千件になると、MySQLが使用するメモリが足りなくなるかもしれません。すると処理に時間がかかり、サーバの過負荷につながる状態になります。
このように、今後サービスがどのようになるかを考えていないと、「問題がおきる → 直す → 問題がおきる → 直す・・・」の繰り返しになり、良いサービスを提供する事ができません。
では、どうしたらいいのでしょうか?
問題が起こる前に対応するには、今後システムがどこまで大きくなるのか(使用ユーザ数、通信量など)を予めイメージして、"将来の状態"に合わせて設定をチューニングしておくことが必要となります。
デージーネットがシステムを要件定義から担当する場合には、構築前にヒアリングを行い、今後システムがどのようになるかまでお客様と一緒にイメージを持ちます。その後、どのような性能が出る必要があるかまとめます。将来的に使うユーザ数や通信量で負荷試験を実施し、あらかじめチューニングを行うのです。
システムを長く安定して使っていくためには、将来のことをよく考え、はじめからチューニングをしていく必要があるのです。