LINUX.ORG.RU
ФорумAdmin

Процесс ест 100% CPU - как понять почему?


0

0

Жёсткая проблема - древний apache тормозит и жрёт 100% CPU.

Вывод top'a

174 processes: 156 sleeping, 17 running, 1 zombie, 0 stopped
CPU states: 87.4% user, 12.4% system,  0.0% nice,  0.1% idle
Mem:  1022936K av,  979092K used,   43844K free,       0K shrd,   38888K buff
Swap: 2040212K av,  125832K used, 1914380K free                  656988K cached
Delay between updates:
  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
23108 root      15   0  8536 8536  8172 S    99.9  0.8   2:20 httpd

strace валит тонну сообщений, почему такая загрузка - не ясно.

load average: 17.01, 17.29, 17.53 - почему, не понятно.

Как понять в чём узкое место? IO? CPU? Network?

Очень нужна помощь.


anonymous

Re: Процесс ест 100% CPU - как понять почему?

В данном случае похоже на CPU. Для 100% уверенности попробуйте воспользоваться oprofile. Кроме того, локализовать проблему можно, узнав список открытых файлов через lsof.

AEP ★★★★★ ()

Re: Процесс ест 100% CPU - как понять почему?

Кстати, вывод strace на apache с детьми за 100 секунд:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 37.27    4.228620           8    509772      9830 read
 30.34    3.442239         282     12222        17 write
  7.30    0.828465          17     48968           brk
  4.67    0.529414           8     68518           lstat64
  1.80    0.204176          18     11380           mmap2
  1.68    0.190377         236       805        37 connect
  1.66    0.188091           6     29265           fcntl64
  1.58    0.179636          16     11352           munmap
  1.44    0.162948          13     12972      2965 open
  1.22    0.138445           5     26035           fstat64
  1.09    0.123329          13      9721           getcwd
  1.08    0.122329          10     11823           close
  1.06    0.120429          76      1579       730 writev
  0.88    0.099506        1363        73           fork
  0.82    0.093093           6     16026     16026 ioctl
  0.74    0.084381           5     18244           lseek
  0.67    0.076415          10      7419           rt_sigaction
  0.66    0.074382        2324        32         9 wait4
  0.42    0.047301        1213        39           execve


Ничего интересного ... :-(

anonymous ()
Ответ на: Re: Процесс ест 100% CPU - как понять почему? от anonymous

Re: Процесс ест 100% CPU - как понять почему?

> Ничего интересного ... :-(

Ну как это ничего интересного.

1. fork/execve вызываются редко, т.е. проблема не связана с GCI. Но это никак не согласуется с заявлением о том, что вывод lsof не кончается!

2. число микросерунд на read() мало, т.е. диск - не проблема.

Хотелось бы знать тип нагрузки - статика, PHP или что-то еще.

AEP ★★★★★ ()

Re: Процесс ест 100% CPU - как понять почему?

> Хотелось бы знать тип нагрузки - статика, PHP или что-то еще.

php, который вызывает Oracle.

В общем, виноват Oracle, сейчас новую тему создам.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.