CentOS 6.9의 커널 버그

CentOS 6.9의 커널 버그

/var/log/messeges최근에 내 및 다음 메시지에서 다음 메시지를 확인했습니다 dmesg | less.

 kernel: INFO: task flush-8:32:1065 blocked for more than 120 seconds.
 kernel:      Not tainted 2.6.32-696.el6.x86_64 #1
 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this 
 message.
 kernel: flush-8:32    D 0000000000000004     0  1065      2 0x00000000
 kernel: ffff88063389b840 0000000000000046 0000000000000000 0005120000000001
 kernel: ffff880636304ce0 ffff8806363098c0 00022e760ddb7d3a ffff88062db31360
 kernel: 0000000000011200 000000012494c97a ffff88062e0fbad8 ffff88063389bfd8
 kernel: Call Trace:
 kernel: [<ffffffff811d11e0>] ? sync_buffer+0x0/0x50
 kernel: [<ffffffff8154ae83>] io_schedule+0x73/0xc0
 kernel: [<ffffffff811d1220>] sync_buffer+0x40/0x50
 kernel: [<ffffffff8154b73a>] __wait_on_bit_lock+0x5a/0xc0
 kernel: [<ffffffff811d11e0>] ? sync_buffer+0x0/0x50
 kernel: [<ffffffff8154b818>] out_of_line_wait_on_bit_lock+0x78/0x90
 kernel: [<ffffffff810a68c0>] ? wake_bit_function+0x0/0x50
 kernel: [<ffffffff811d1540>] ? end_buffer_async_write+0x0/0x190
 kernel: [<ffffffff811d13c6>] __lock_buffer+0x36/0x40
 kernel: [<ffffffff811d26c5>] __block_write_full_page+0x305/0x330
 kernel: [<ffffffff811d1540>] ? end_buffer_async_write+0x0/0x190
 kernel: [<ffffffff811d27d0>] block_write_full_page_endio+0xe0/0x120
 kernel: [<ffffffffa0211d00>] ? buffer_unmapped+0x0/0x20 [ext3]
 kernel: [<ffffffff811d2825>] block_write_full_page+0x15/0x20
 kernel: [<ffffffffa021288d>] ext3_ordered_writepage+0x1ed/0x240 [ext3]
 kernel: [<ffffffff81142367>] __writepage+0x17/0x40
 kernel: [<ffffffff8114362d>] write_cache_pages+0x1fd/0x4c0
 kernel: [<ffffffff81009913>] ? __switch_to+0x2f3/0x340
 kernel: [<ffffffff81142350>] ? __writepage+0x0/0x40
 kernel: [<ffffffff81299899>] ? cpumask_next_and+0x29/0x50
 kernel: [<ffffffff81064054>] ? find_busiest_group+0x254/0xa50
 kernel: [<ffffffff81143914>] generic_writepages+0x24/0x30
 kernel: [<ffffffff81143955>] do_writepages+0x35/0x40
 kernel: [<ffffffff811c6f1d>] writeback_single_inode+0xdd/0x290
 kernel: [<ffffffff811c731d>] writeback_sb_inodes+0xbd/0x170
 kernel: [<ffffffff811c747b>] writeback_inodes_wb+0xab/0x1b0
 kernel: [<ffffffff811c7873>] wb_writeback+0x2f3/0x410
 kernel: [<ffffffff8154a68e>] ? schedule+0x3ee/0xb70
 kernel: [<ffffffff811c7b3d>] wb_do_writeback+0x1ad/0x250
 kernel: [<ffffffff8108f000>] ? process_timeout+0x0/0x10
 kernel: [<ffffffff811c7c86>] bdi_writeback_thread+0xa6/0x220
 kernel: [<ffffffff811c7be0>] ? bdi_writeback_thread+0x0/0x220
 kernel: [<ffffffff810a63ae>] kthread+0x9e/0xc0
 kernel: [<ffffffff8100c28a>] child_rip+0xa/0x20
 kernel: [<ffffffff810a6310>] ? kthread+0x0/0xc0
 kernel: [<ffffffff8100c280>] ? child_rip+0x0/0x20  

오늘 가상 머신 중 하나가 다시 시작되었습니다. 확인해보니 messeges위의 메시지가 표시되고 일부 데이터베이스 오류가 표시되었습니다. 네트워크에 문제가 발생하여 컴퓨터와 기본 컴퓨터의 연결이 끊겼다가 다시 시작되었습니다. 내 질문은: 이러한 커널 메시지는 무엇이며 문제는 어디에서 찾아야 합니까? 인터넷과 관련이 있나요? VM 머신에서만 발생합니까?

답변1

이 경고는 리소스 부족으로 인해 발생합니다.

가상 머신에 있는 경우 이는 호스트가 초과 구독되었다는 단서가 될 수 있습니다.

이는 경고(따라서 INFO 키워드)이므로 무시할 수 있습니다. 그러나 문제를 일으키는 근본적인 문제는 시간이 지남에 따라 악화될 수 있으므로 해결하는 것이 좋습니다.

나는 I/O 스토리지 부족이나 리소스/과도한 약속을 선택하겠습니다.

다음을 실행해 볼 수도 있습니다.

sudo sysctl -w vm.dirty_ratio=10
sudo sysctl -w vm.dirty_background_ratio=5

이것이 효과가 있다면 영구적으로 설정하고 시작 시 적용하십시오 /etc/sysctl.conf.

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

바라보다Linux 커널 패닉 문제: hang_task_timeout_secs 및 120초 이상 차단 문제를 해결하는 방법

기본적으로 Linux는 파일 시스템 캐시에 사용 가능한 메모리의 최대 40%를 사용합니다. 이 표시에 도달하면 파일 시스템은 모든 미처리 데이터를 디스크에 플러시하여 모든 후속 IO가 동기화되도록 합니다. 기본적으로 이 데이터를 디스크에 플러시하는 시간 제한은 120초입니다. 이 경우 IO 하위 시스템은 120초 내에 데이터를 새로 고칠 만큼 빠르지 않습니다. 위 오류는 IO 하위 시스템이 느리게 응답하고 더 많은 요청을 처리하여 HTTP 요청을 처리함에 따라 시스템 메모리가 가득 차서 발생합니다.

관련 정보