この記事は、Liferay DXP 7.0のInsufficient Resourcesに関連する一般的なパフォーマンスの問題を文書化したものです。 この問題についての必要な情報とナビゲート方法については以下をお読みください。
解決策
システムリソースが不足している
Liferayのプラットフォームだけでなく、他のアプリケーションも稼働しているため、サーバーはマルチタスクになることがよくあります。 例えば、データベースが同じマシンやウェブサーバーにある場合もあります。 その他、サーバーがElasticsearchなど他のアプリケーションをホストしている場合もあります。
システムリソース不足 の状況で、アプリケーションの動作が遅くなる場合です。 これは、アプリケーションが 実際に 遅いからではなく、必要なリソースをすべて基礎となるサーバーから得ていないために起こることです。 つまり、プロセッサやハードディスク、ネットワークが個々のリクエストに対応し続けることができるようになるのを待つ必要があるのです。
一つの指標として、サーバーのCPUの使用率が高いのに、スレッドダンプや pidstat
によると、活動の兆候がない場合があります。
実時間 > sys + usr time
Liferayプラットフォームがリソースを待っていることを示す他の指標の1つは、「リアル」時間が usr
と sys
の合計よりも高いことを確認した場合です。
以下に例を示します。
[Times: user=0.20 sys=0.01, real=1.2 secs]
通常、実時間はユーザとシスを合わせた時間よりも短く、 ウォールタイム を計測するのに対し、 usr
と sys
は cpu timeを計測するからです。 4つのプロセスで1秒を費やすプロセスがあるとすると、 usr
の時間が4秒になるのに対し、realは1秒にとどまる可能性があります。 このような情報は、ガベージコレクタのログや pidstat
から見ることができます。 .
ソリューション
システム管理者は、サーバーのパフォーマンス、具体的には、どのような他のプロセスが実行されていて、どれだけのリソースを消費しているかを調査する必要があります。 最後に、他のアプリケーションを別のサーバーに移せるかどうかを検討します。