システム障害はアクセス過多やDDoS攻撃といった外部からの脅威によってのみ引き起こされるわけではありません。むしろOSやミドルウェア、アプリケーション側に問題があり、それが引き金となって障害につながるケースのほうが多いと言われています。

そうした内部要因のなかでも、特に現場の担当者が目にするのがメモリリークによる機器機能停止です。ご承知のようにメモリリークとは、プログラムが確保したメモリ領域が解放されずに残ってしまう問題です。メモリリークが積み重なるとリソースが枯渇してプログラムだけでなくシステム全体に影響が波及していきます。

例えば、3秒毎に100バイトといった小さな規模でメモリリークが発生したとします。そのまま稼働し続けると1ヵ月で約86MBになり、1年で1GB超に達します。発生当初は気づかないのですが、いずれかのタイミングでリソースが足りなくなり、システムが遅くなったり、特定のプログラムが落ちたりします。そこで初めてシステムに問題があることが分かるわけです。

メモリリークに対処するのはやっかいです。日々の運用で忙しいなか、どのプログラムにどんな問題があるかを見つけ、対処していかなければなりません。また、システムに問題が発覚してメモリリークが原因であることを突き止めても、すぐに対処できるわけではありません。プログラムの問題箇所を修正し、テストを行って影響範囲を確認しなければなりません。ときには、開発や運用のりあり方を見直す必要もでてきます。

Webサービスを展開するA社では、システムが全体的に遅いという問題に悩んでいました。ただ、新機能の開発や日々の運用で手が回らず、システムのパフォーマンス改善に手を付けられなかったそうです。次第に、サイトの表示スピードが遅くなり、ユーザー体験が損なわれるようになりました。

そこでA社は、専属チームを作りシステム全体のパフォーマンス改善に取り組むことにしました。まず、アプリケーションからシステム機器までを統合監視できるシステムを導入しました。ただ、忙しいA社ではメンバーが付きっきりで監視できるわけではありません。そこで、外部のサービス事業者に監視の運用を依頼し、リソースが枯渇したときなどにアラートを通知してもらうことにしました。

さらに、運用だけでなく、開発チームとも連携し、開発段階からメモリリークなどの原因をできるだけ潰すような体制を整えました。そうすることで現在では、メモリリークの発生などを週次で把握できるようになり、システムが遅くなる前に対処できるようになったそうです。

メモリリークのような小さな問題でも積み重なると事業を左右しかねない大きなリスクになります。小さいうちにリスクの芽を摘むことが大切ということでしょう。

監修:シーティーシー・テクノロジー

シーティーシー・テクノロジーは、伊藤忠テクノソリューションズ(CTC)グループで、ITシステムの保守サポート、運用サービス、教育事業を提供する企業。1972年に創業し、全国に保守拠点を持つ。サポートする機器は契約台数約30万台に及び、年間約6万7,000件の障害対応を行うなど、トラブルシューティングのスペシャリスト集団である。

シーティーシー・テクノロジーのHPはこちら
同社が提供するトラブルシューティングサービス「Avail-ProE」の詳細はこちら

[PR]提供: シーティーシー・テクノロジー