Java 프로세스 및 nrpe 확인에 문제가 있습니다. 32 코어 시스템에서 때때로 1000 % CPU를 사용하는 일부 프로세스가 있습니다. 당신이 할 때까지 시스템은 꽤 반응합니다
ps aux
또는 / proc / pid #에서 무언가를 시도하십시오.
[root@flume07.domain.com /proc/18679]# ls
hangs..
ps aux의 strace
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
stat("/dev/pts1", 0x7fffb8526f00) = -1 ENOENT (No such file or directory)
stat("/dev/pts", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
readlink("/proc/15693/fd/2", "/dev/pts/1", 127) = 10
stat("/dev/pts/1", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
write(1, "root 15693 15692 0 06:25 pt"..., 55root 15693 15692 0 06:25 pts/1 00:00:00 ps -Af
) = 55
stat("/proc/18679", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/18679/stat", O_RDONLY) = 5
read(5, "18679 (java) S 1 18662 3738 3481"..., 1023) = 264
close(5) = 0
open("/proc/18679/status", O_RDONLY) = 5
read(5, "Name:\tjava\nState:\tS (sleeping)\nT"..., 1023) = 889
close(5) = 0
open("/proc/18679/cmdline", O_RDONLY) = 5
read(5,
Java 프로세스가 작동하고 정상적으로 완료되지만 문제는 ps aux가 완료되기를 기다리는 시간 초과로 인해 모니터링 프로세스가 중단되었다고 생각합니다.
나는 같은 것을 시도했다
nice -19 ionice -c1 /usr/lib64/nagios/plugins/check_procs -w 1:1 -c 1:1 -a 'diamond' -u root -t 30
운없이
편집하다
시스템 사양
- 32 코어 Intel (R) Xeon (R) CPU E5-2650 0 @ 2.00GHz
- 램 128gig
- 12 4Tb 7200 드라이브
- CentOS 6.5
- 모델을 잘 모르겠지만 공급 업체는 SuperMicro입니다.
이런 일이 발생할 때의 부하는 1 분 동안 90-160ish 정도입니다.
이상한 부분은 다른 / proc / pid #에 들어갈 수 있으며 제대로 작동한다는 것입니다. 시스템은 내가 ssh 할 때 반응합니다. 우리가 고부하에 대해 경고를받을 때와 마찬가지로 나는 아주 잘 ssh 할 수 있습니다.
다른 편집
스케줄러에 마감일을 사용하고 있습니다
[root@dn07.domain.com ~]# for i in {a..m}; do cat /sys/block/sd${i}/queue/scheduler; done
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
noop anticipatory [deadline] cfq
마운트는
[root@dn07.manage.com ~]# mount
/dev/sda3 on / type ext4 (rw,noatime,barrier=0)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /disk1 type xfs (rw,nobarrier)
/dev/sdc1 on /disk2 type xfs (rw,nobarrier)
/dev/sdd1 on /disk3 type xfs (rw,nobarrier)
/dev/sde1 on /disk4 type xfs (rw,nobarrier)
/dev/sdf1 on /disk5 type xfs (rw,nobarrier)
/dev/sdg1 on /disk6 type xfs (rw,nobarrier)
/dev/sdh1 on /disk7 type xfs (rw,nobarrier)
/dev/sdi1 on /disk8 type xfs (rw,nobarrier)
/dev/sdj1 on /disk9 type xfs (rw,nobarrier)
/dev/sdk1 on /disk10 type xfs (rw,nobarrier)
/dev/sdl1 on /disk11 type xfs (rw,nobarrier)
/dev/sdm1 on /disk12 type xfs (rw,nobarrier)
Ok tuned를 설치하려고 시도하고 처리 성능으로 설정했습니다.
[root@dn07.domain.com ~]# tuned-adm profile throughput-performance
Switching to profile 'throughput-performance'
Applying deadline elevator: sda sdb sdc sdd sde sdf sdg sdh[ OK ] sdk sdl sdm
Applying ktune sysctl settings:
/etc/ktune.d/tunedadm.conf: [ OK ]
Calling '/etc/ktune.d/tunedadm.sh start': [ OK ]
Applying sysctl settings from /etc/sysctl.d/99-chef-attributes.conf
Applying sysctl settings from /etc/sysctl.conf
Starting tuned: [ OK ]
mount
어떻습니까?
tuned-adm profile enterprise-storage
nobarrier 및 데드 라인 스위치를 처리하기 위해 명령 사용을 고려하십시오 . dmesg|tail
출력 결과는 무엇입니까 ? I / O 시간 초과가 표시됩니까?