Java 7 및 Wildfly 9가 설치된 Red Hat 6에서 Java EE 애플리케이션을 실행하고 있습니다. 때때로 응용 프로그램이 제대로 작동하지만 갑자기 응답 시간으로 인해 응용 프로그램을 사용할 수 없게 되어 Wildfly 프로세스를 중지하고 다시 시작해야 합니다. 그런 다음 며칠 후에 응용 프로그램이 정상적으로 작동하게 됩니다. Wildfly server.log에는 jvm 오류나 다른 Java 오류가 없지만 dmesg
명령을 사용하면 이 오류 메시지가 나타납니다.
NET: Registered protocol family 36
INFO: task java:14736 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
java D 0000000000000002 0 14736 1 0x00000080
ffff8804aefdddf8 0000000000000082 0000000000000000 ffff8804fb0211e8
ffffea0011529c00 ffff8804aefddde8 0000000000000000 000000011889588b
ffff8804875eba78 ffff8804aefddfd8 000000000000f598 ffff8804875eba78
Call Trace:
[<ffffffffa00e05d5>] jbd2_log_wait_commit+0xc5/0x140 [jbd2]
[<ffffffff8108e160>] ? autoremove_wake_function+0x0/0x40
[<ffffffffa00e0686>] ? __jbd2_log_start_commit+0x36/0x40 [jbd2]
[<ffffffffa00fc55c>] ext4_sync_file+0x13c/0x250 [ext4]
[<ffffffff811a09b1>] vfs_fsync_range+0xa1/0xe0
[<ffffffff811a0a5d>] vfs_fsync+0x1d/0x20
[<ffffffff811a0a9e>] do_fsync+0x3e/0x60
[<ffffffff811a0af0>] sys_fsync+0x10/0x20
[<ffffffff8100b172>] system_call_fastpath+0x16/0x1b
hrtimer: interrupt took 3019336509 ns
NET: Unregistered protocol family 36
NET: Registered protocol family 36
답변을 찾고 다음 설정을 내 에 적용했습니다 sysctl.conf
.
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
그러나 그것은 소용이 없습니다! 이 문제의 원인이 무엇인지 아는 사람이 있습니까?