티스토리 뷰
만약 RedHat 계정이 있다면 아래 RedHat 솔루션 페이지를 한번 읽어볼것을 권장한다.
hung_task_panic 설정의 경우 Rocky Linux라고 다르지 않다.
실제 CentOS 7에서도 동일하게 설정이 가능하다.
hung_task_panic 설정
hung_task_panic 에 따른 vmcore를 분석해야 하는 경우 다음과 같은 설정을 수행해야 한다.
먼저 CentOS와 동일하게 kdump가 동작중이어야 한다.
[root@localhost rocky]# systemctl status kdump
● kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2021-10-23 10:34:10 UTC; 3 days ago
Main PID: 875 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 23554)
Memory: 0B
CGroup: /system.slice/kdump.service
Oct 23 10:34:09 dubaek-testvm.novalocal systemd[1]: Starting Crash recovery kernel arming...
Oct 23 10:34:10 dubaek-testvm.novalocal kdumpctl[875]: kdump: kexec: loaded kdump k
nel
Oct 23 10:34:10 dubaek-testvm.novalocal kdumpctl[875]: kdump: Starting kdump: [OK]`
Oct 23 10:34:10 dubaek-testvm.novalocal systemd[1]: Started Crash recovery kernel arming.
kdump가 위와 같이 동작되는 환경에서 아래 설정을 추가한다.
[root@localhost rocky]# echo 1 > /proc/sys/kernel/hung_task_panic
NOTE
실제 위 설정은 permanent 한 설정이 아니기에 지속적으로 설정하고자 한다면
/etc/sysctl.conf에 kernel.hung_task_panic = 1을 추가해 놓자
참고사항으로 아래 timeout 이상의 시간을 hung_task_panic 발생까지 기다리게 된다.
잘못된 재부팅과 hung_task_panic 상황을 만들기 싫다면 해당 timeout 시간을 늘리는것도 하나의 방법이다.
[root@localhost rocky]# cat /proc/sys/kernel/hung_task_timeout_secs
120
hung_task_panic 테스트
실제 hung_task_panic을 1로 설정하고 정상적으로 hung_task에 대한 panic이 발생되는지 확인을 위해
다음과 같은 작업을 수행해보자.
테스트를 위해서는 하나의 서버에 두개의 terminal을 연결이 필요하다.
먼저 첫번째 terminal에서는 다음 명령을 수행한다.
[root@localhost rocky]# while true; do dd if=/dev/zero of=/tmp/dd_tempfile bs=15 count=2100; done
두번째 terminal에서는 다음 명령을 수행한다.
아래 명령을 수행함과 동시에 첫번째 terminal에서 동작되던 dd는 멈추게 된다.
[root@localhost rocky]# fsfreeze -f /tmp
위 과정이 수행하고 나면 처음에는 별다른 반응이 없고 terminal도 정상적으로 동작되나
앞서 확인했던 hung_task_timeout_secs 이상의 시간이 소요되면 (hung_task로 판별되는데에 시간이 좀더 소요되는것으로 예상)
해당 서버가 강제로 재부팅되는것을 확인할 수 있다.
실제 재부팅 이후에 다음과 같은 vmcore 파일이 생성되었음을 확인할수 있다.
[root@localhost rocky]# cd /var/crash/
[root@localhost 127.0.0.1-2021-11-01-09:03:24]# pwd
/var/crash/127.0.0.1-2021-11-01-09:03:24
[root@localhost 127.0.0.1-2021-11-01-09:03:24]# ls -al
total 134272
drwxr-xr-x. 2 root root 67 Nov 1 09:03 .
drwxr-xr-x. 3 root root 43 Nov 1 09:03 ..
-rw-r--r--. 1 root root 41468 Nov 1 09:03 kexec-dmesg.log
-rw-------. 1 root root 137407493 Nov 1 09:03 vmcore
-rw-r--r--. 1 root root 40025 Nov 1 09:03 vmcore-dmesg.txt
참고사이트
'os > Linux' 카테고리의 다른 글
print net_ratelimit in the message (0) | 2022.02.15 |
---|---|
process max open files with systemd (0) | 2021.11.24 |
Ubuntu CVE Status (0) | 2021.03.17 |
KVM with NAT network (0) | 2021.01.27 |
Occuring timeout when use apt or curl or wget on WSL2 (0) | 2020.11.29 |
- Total
- Today
- Yesterday
- Helm Chart
- aquasecurity
- DevSecOps
- Jenkinsfile
- minio
- socket
- crashloopbackoff
- wsl2
- open policy agent
- ceph
- vmware openstack
- kata container
- kubernetes
- kubernetes install
- mattermost
- openstacksdk
- jenkins
- GateKeeper
- minikube
- macvlan
- OpenStack
- openstack backup
- azure policy
- ansible
- K3S
- Terraform
- boundary ssh
- hashicorp boundary
- metallb
- nginx-ingress
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |