ICT中級講座 F/U NO.19
メディカルICTリーダー養成講座【中級】フォローアップ
≪サーバー保守学≫
医療現場のサーバーやシステム保守運用業務に役立つ情報を定期的に配信しています。
サーバ保守学(18)
(執筆者)亀田医療情報株式会社 塚田智
みなさん、こんにちは、サーバー保守学第18回です。新型コロナウイルスの感染拡大は収束することなく、第三波のただなかにあります。一般的には第一波が一番大きく、第二波、第三波と小さくなっていくことを期待しますが、新型コロナウイルスの場合は逆にどんどん大きくなっている印象です。かなり長期的な対応が必要なことを覚悟して、対策を検討すべきでしょう。
さて、今回は前回から引き続き、電子カルテなどのシステムを長期間運用していると遭遇するレスポンス悪化(システムの応答時間の増加)の原因と対応についてです。前回は、インデックス、再編成と統計情報について考えました。今回は、ネットワークやサーバーに起因するレスポンス悪化の原因と対応を考えたいと思います。
レスポンス悪化の原因と対応(2)
1.ネットワーク
施設内のLANでは、業務に必要なデータ量に対して十分な容量(帯域)がありますので、ネットワークが原因でレスポンスが悪化することはほとんどありません。ネットワークに何らかの障害があれば、通信停止として表面化するでしょう。レスポンス悪化が考えられるのは、不要なパケットが大量に発生した場合です。この場合は、ネットワークを調査するツールで比較的簡単に原因となる機器を特定でき、その機器をネットワークから切り離すか交換することで解決します。
データセンターやクラウドのシステムを使っている場合は、ネットワークに起因するレスポンス悪化の原因をなかなか特定できず、特定できても対応が難しいことが多いです。調査対象としては、施設内のルーターやファイアウォールの性能や設定、施設外のインターネット回線の容量、データセンターやクラウドにあるインターネットとの接続ポイントの容量など、たくさんの要素があります。また、それらを管理する業者が異なることで調査が難しくなります。苦労して原因を特定しても、他社と共有する設備が多く対応は遅れがちです。
2.サーバー再起動
サーバーからのレスポンスが悪化し、サーバー上では調査ツールすら動きが悪くなることがあります。何らか無駄な処理があればそれを停止します。それだけでは解決せず、サーバーを再起動することで解決することがあります。これは、WindowsなどのOSやデータベースなどのミドルウェアによる、いわゆるメモリーリーク(注1)に起因することがあります。OSやミドルウェアは長期間使っていると無駄にメモリー領域を消費してしまい、アプリケーションの稼働に必要十分なメモリーを確保できず、レスポンスが悪化します。
対策としては半年や1年ごとに、障害が顕在化する前に計画的に再起動しておくことです。ただし、サーバーの再起動は、その間に業務を停止する必要があり、再起動後に正しく起動できないリスクもあるので、頻繁な再起動は推奨できません。最近のOSやミドルウェアは安定しており、メモリーリークはとても少なくなっています。サーバーが安定しているようなら、再起動までの期間を随時延長するなど、なるべく業務停止しない運用を検討しましょう。
また、最近ではウイルスやその対策ソフトが原因で、サーバーのレスポンスが悪化することが多くなっているようです。サーバーを再起動しても解消しない場合は、それらが原因ではないか確認するようにしましょう。
3.プログラム修正
データベースにインデックスは作成してある、再編成と統計情報も適切な状態だ、ネットワークにも遅延はなく、サーバーを再起動してもレスポンスを改善できない、となると、最終的には電子カルテなどのアプリケーションプログラムの修正を検討します。
プログラムは設計時にある程度のデータ量を想定しています。実際のデータが想定以上の件数になったり、特定の種類のデータが偏って蓄積された場合に、レスポンスが悪化することがあります。
また、最近ではウイルスやその対策ソフトが原因で、サーバーのレスポンスが悪化することが多くなっているようです。サーバーを再起動しても解消しない場合は、それらが原因ではないか確認するようにしましょう。
これに対応するために、プログラムを修正して、適切なレスポンスになるようにプログラムの処理の順番を変更したい、処理を分割したりします。あるいは、処理速度を優先して、データベースの設計を変更することもあります。このような修正は開発業者にしかできません。また、レスポンスの良い処理を設計するには高い技術が必要になり、対応完了までに時間がかかります。
前回も説明したように、レスポンス悪化の対応は、業者が実施するものであり、システム管理者が単独で実施できるものではありません。システム管理者は、業者と対等に会話できるような知識を持っておきましょう。また、ユーザーからの報告で、レスポンスが悪化しているようだという情報だけでは、業者の調査にも時間がかかってしまいます。どこの操作で、以前は何秒程度だったものが何秒程度に悪化した、など操作や業務を限定して具体的な情報を提供することで対応が早くなることを期待できます。さらには、日常的にレスポンスを監視することで、レスポンス悪化を早期に察知し、システム停止に繋がるような重大な障害を予防するような対策を講じておきましょう。
[脚注]
- (注1)メモリーリーク(memory leak):実行中のプログラムが確保したメモリ領域を解放しないことで、メモリ資源が不足する現象のこと。