Azure IaaSのLinuxサーバでディスク性能が出ない場合の意外な犯人

IT

この記事にたどり着いた貴方は、Azure IaaSのLinuxサーバでディスク性能が出なくてお困りのことと思います。

これは、ITインフラエンジニアの筆者が仕事でぶち当たった問題の一つで、既に解決しています。

人生において時間は貴重です。誰かと同じ問題で悩む必要はありません。時短サイコーです。

同じように困っている人が、本記事に辿り着き、一瞬で問題解決ができる。

そんなブログでありたいです。

対象環境

本記事では最後に犯人を解き明かしますが、貴方の環境が対象環境に当てはまらない場合は、本記事は関係ありません。

時間の無駄にならない内に、戻るボタンで次のサイトに行ってください。

逆に対象環境に当てはまる場合は、記事の続きをご参照ください。

本記事の対象は、下記3点を満たす環境です。

  • Azure IaaSでLinuxサーバを利用している
  • AzureFilesをLinuxサーバにマウントしている
  • Linuxサーバにウイルス対策ソフトを導入している

対象環境の構成と性能改善対応

環境構成を図で表すと以下のようになります。

本構成において、SaaSやPaaSではなく、IaaSを利用している理由は、個別アプリケーションを利用するためです。最もカスタマイズ性、自由度の高いIaaSを利用しています。

マネージドディスクではなく、AzureFilesの領域をマウントする理由は、ファイルサーバのようにして、他サーバとファイル共有をしたいためです。

ウイルス対策ソフトの導入は、サーバには不要のような気がしますが、経営陣のセキュリティ意識の高さから導入する決まりになっています。

いかがでしょうか。割とよくある構成ではないでしょうか。

このような構成で、性能テストを行っているアプリサイドから「性能が出ない」と苦情がありました。

初期の改善活動として、メモリ増強、ストレージの性能(SKU)アップ等、色々と改善策を施したところ、少し性能は良くなりましたが、思ったほどの改善はできませんでした。

犯人の正体

お急ぎの方のために早速、犯人を名指しします。

犯人は、ウイルス対策ソフトの「オンアクセススキャン」です。


オンアクセススキャンとは

リアルタイムスキャンとも呼ばれ、コンピュータ内のプロセスが、ファイルにアクセスする直前にそのファイルにウイルスが無いか検索をかける機能です。

ウイルス対策ソフトは、過去の膨大なデータからウイルスの挙動のノウハウを蓄積していて、オンアクセススキャンでは、これからアクセスするファイルが問題ないファイルかどうかを瞬時に判断します。


オンアクセススキャンがディスク性能低下を招く要因

オンアクセススキャンでは、ディスクアクセスがあったタイミングでファイルへのスキャンを行うので、単純に、1回のディスクアクセスが遅くなります。

現代のコンピュータであれば、ディスクアクセスが少なければ、ほとんど性能に影響はありませんが、大量のファイルに何度もアクセスするようなプログラムがシステム内にいる場合、ディスク性能に影響を及ぼします。

特にAzureFilesのようなネットワークドライブをマウントしている場合、マネージドディスクと比較して性能が劣るため、オンアクセススキャンの影響を受けやすくなります。


解決策

スキャン除外設定を投入しましょう。

ウイルス対策ソフトでは、スキャンを除外したいディレクトリを設定できるようになっています。

設定方法はウイルス対策ソフトによって異なるため割愛します。

筆者コメント

筆者が犯人に気づけた理由は、過去に同じ事象でバックアップが失敗して夜間対応をしたことがあるからです。

実は結構昔からある知る人ぞ知る問題です。

ウイルス対策ソフトは、ウイルスの動きを感知するため、ディスクアクセスの根幹部分を利用していますので、ディスクアクセスの性能低下を招くことがあり、システム構成によっては性能要件を満たせなくなります。

なお、筆者の環境はAzureでしたが、AWSでも同様の構成であれば同様の事象が発生します。

ちなみにWindowsサーバは、ネットワークドライブのマウントがユーザに紐づくことから、ウイルス対策ソフトのデフォルトでスキャンの対象になっていなかったりします。

ウイルス対策ソフトは、非機能要件に当たるため、存在感が薄く被疑者になりづらいです。

他の機能に目が行ってしまいがちですが、設計時には必ずチェックしたい項目です。(と自分に言いきかしています)

できれば問題にぶち当たる前(設計時)に、阻止したいものですね。

コメント

タイトルとURLをコピーしました