現在、いくつかのVMと「ベアメタル」サーバーを実行しています。 Javaが高速度で実行されている-時々400%+以上。コンソールが「Java-120秒を超えてブロックされた」-kjournaldなどのエラーでランダムにハングする.
何らかの理由でこのエラーがコンソールにのみ書き込まれるため、dmesg出力を取得できません。これはリモートでホストされているため、アクセスできません。したがって、完全なトレースをコピーできません。
私はこれが置かれている環境を変更しました-物理サーバーでさえ、それはまだ起こっています。
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html のように、これが誤検知である場合は、hung_task_timeout_secsを0に変更しました。
また、irqbalanceがインストールされていません。おそらく役に立ちますか?
これはUbuntu 10.04 64ビットです。最新の2.6.38-15-serverおよび2.6.36でも同じ問題が発生します。
cPUまたはメモリの問題/スワップが残っていないことがこの問題の原因ですか?
ここにコンソールメッセージがあります:
[58Z?Z1.5?Z840] INFUI task Java:21547 blocked for more than 120 seconds.
[58Z?Z1.5?Z986] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z06Z] INFUI task kjournald:190 blocked for more than 120 seconds.
[58Z841.5?Z336] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z600] INFUI task flush-202:0:709 blocked for more than 120 seconds.
[58Z841.5?Z90?] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?3413] INFUI task Java:21547 blocked for more than 120 seconds.
[58Z841.5?368Z] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z961.5?ZZ36] INFUI task kjournald:60 blocked for more than 120 seconds.
[58Z961.5?Z6Z5] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z961.5?31ZZ] INFUI task flush-202:0:709 blocked for more than 120 seconds.
[58Z961.5?3393] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
はい、できます。
これが意味することはかなり明白です:カーネルは120秒間タスクをスケジュールできませんでした。これは、多くの場合ディスクアクセスに関連するリソース不足を示しています。
irqbalance
は役立つかもしれませんが、それは明白に聞こえません。 dmesg
のこのメッセージの周囲、特にそれに続くスタックトレースを教えていただけますか?
さらに、これはnot誤検知です。これは、タスクがハングしたforeverであるとは言いません。ステートメントは完全に正しいです。これは問題があるという意味ではありません。ユーザーへの影響に気づかない場合は、無視するように決定できます。
これは次の原因で発生することはありません。
oom-killed
であるため、RAM)が不足しているわけではありません)、oom-killer
)。つまり、RAMでシステムからデータキャッシュを奪うと、より多くのI/Oが発生することになります。しかし、 "メモリ不足です。」.
Sudo sysctl -w vm.dirty_ratio=10
Sudo sysctl -w vm.dirty_background_ratio=5
次に、変更をコミットします。
Sudo sysctl -p
私のためにそれを解決しました...
最近、本番クラスターの1つでこのエラーを経験しました。
11月11日14:56:41 xxxカーネル:INFO:タスクxfsalloc/3:2393が120秒以上ブロックされました。
11月11日14:56:41 Xxxxカーネル:汚染されていない2.6.32-504.8.1.el6.x86_64#1
11月11日14:56:41 xxx:「エコー0>/proc/sys/kernel/hung_task_timeout_secs」は、このメッセージを無効にします。
..
Sarログをさらに検証すると、IO待機が同時に増加しました。
また、ハードウェア(物理ディスク)をチェックすると、中程度のエラーが見られ、他のSCSIエラーが物理ディスクにログオンしていたため、割り当てるリソースが不足していたため、IOがブロックされていました。
11/11/15 19:52:40:終了したpRdm 607b8000フラグ= 0 TimeOutC = 0 RetryC = 0要求c1173100応答60e06040 iocStatus 0048 retryC 0 devId:3 devFlags = f1482005 iocLogInfo:31140000
11/11/15 19:52:40:DM_ProcessDevWaitQueue:プロセスdevId = xのタスク管理11/11/15 19:52:40:DM_ProcessDevWaitQueue:プロセスdevId = xのタスク管理
これは、クラスターでのハードウェアエラーが原因でした。
したがって、コアファイルを確認でき、さらにipmiユーティリティがそこにある場合は、ipmiutil/ipmitool sel elistコマンドを確認して問題を確認することをお勧めします。
よろしく、VT
クラウドプロバイダーの監視インターフェイスに移動して、ストレージに指定された最大IOpsを超えていないかどうかを確認できます。これにより、キャッシュデータのフラッシュに長い時間がかかった理由がわかります。
最大IOpsは、ストレージ属性ページで確認できます。