LINUX.ORG.RU

Сообщения Ser01x

 

Подвисает система Linux

Столкнулись с проблемой, что периодически подвисает система Linux.

Есть программа, довольно сложный продукт, которая для своей работы создает порядка 260 «тредов». Во время работы данного софта обнаружили, что он периодически подвисает 3-5 секунд. За 10 минут работы, таких подвисаний может быть 6-8.

Первые предположения были, что подглючивает сама софтина и решили уронить ее в дамп во время подвисания, ну и соответственно далее изучить дамп и все такое... Сделали тулзовину, которая 2 раза в секунду опрашивает данную софтину и если она не отвечает в течении 2 секунд, раняет ее в дамп. Оказалась, что во время подвисания, виснит и сама тестовая тулзовина. Назначали ей RealTime приоритет (политика: SCHED_FIFO, приоритет 50), т.е. приоритет выше чем у внутренних потоков ядра. И все равно тулзовина во время этих 3-5 секундных подвисаний не получает время для работы.

Виснит полностью вся система. Складывается впечатление, что scheduler вообще никому не дает CPU для работы...

Залогировали список системных вызовов которые делает исследуемый софт:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
97.48 56418.270831         117   4993295    147009 futex
  0.77  445.035345    23422913        19        19 rt_sigsuspend
  0.76  439.691892         665    661688           select
 0.43  247.266351       62710      3943           recvfrom
  0.42  243.651252       45466      5359           recv
  0.04   22.876741        8295      2758        15 ioctl
  0.04   20.691496       32432       638           fsync
  0.02   14.450080      578003        25        25 rt_sigreturn
  0.02   11.988313           4   2950716           gettimeofday
  0.01    4.325112          21    201386           clock_gettime
  0.00    2.811146           4    680297           read
  0.00    2.694780          42     64393           write
  0.00    0.409938       14641        28           creat
  0.00    0.358971       16317        22           statfs
  0.00    0.305992          78      3943           sendto
  0.00    0.126784          23      5411           send
  0.00    0.121982      121982         1           mlockall
  0.00    0.061515           1     55759       154 open
  0.00    0.043443           1     55633           close
  0.00    0.030690          55       558           mmap2
  0.00    0.030086         971        31           unlink
...
видно, что львиное время работы уходит на вызов 'futex'.

Может кто сталкивался с подобной проблемой? Поскажите, куда следует начинать копать?

p.s. kernel: vanilla linux-2.6.33.7 + patch-2.6.33.7-rt29

 ,

Ser01x
()

RSS подписка на новые темы