Назад | Перейти на главную страницу

CentOS 5 работает очень медленно при загрузке

Когда мой сервер загружает файл или выполняет другие операции ввода-вывода, другие функции сервера становятся очень медленными (почти заблокированными). Даже другие функции, не использующие сеть. Во время загрузки, если я начинаю печатать в gnome-terminal, первая клавиша, которую я набираю, задерживается на несколько секунд, чтобы появиться на экране, и много раз она повторяется несколько раз с буквой, даже печатая только один раз.

За секунды до начала загрузки я выполняю команду sar:

[root@hostname ~]# sar 6 36
Linux 2.6.18-348.6.1.el5 (hostname)         07-07-2013

13:16:42          CPU     %user     %nice   %system   %iowait    %steal     %idle
13:16:48          all      3,96      0,00      6,50      4,94      0,00     84,59
13:16:54          all      8,33      0,00      0,88      1,35      0,00     89,44
13:17:00          all      4,81      0,00      1,17      0,17      0,00     93,85
13:17:06          all      2,49      0,00      2,44      0,80      0,00     94,27
13:17:12          all      6,42      0,00     10,02     24,08      0,00     59,48
13:17:18          all      1,61      0,00     17,16     28,87      0,00     52,36
13:17:24          all      6,46      0,00     14,03     10,66      0,00     68,86
13:17:30          all     10,66      0,00     16,76      4,93      0,00     67,65
13:17:36          all      8,41      0,00     21,28     19,07      0,00     51,25
13:17:42          all      4,98      0,00     18,10     47,51      0,00     29,41
13:17:48          all      0,48      0,00     13,87     28,22      0,00     57,44
13:17:54          all      0,53      0,00     13,80     42,60      0,00     43,08
13:18:00          all      1,08      0,00     12,62     57,36      0,00     28,94
13:18:06          all      1,90      0,00     15,37     63,71      0,00     19,02
13:18:12          all      1,10      0,00     16,26     71,44      0,00     11,21
13:18:18          all      1,65      0,00     21,12     72,99      0,00      4,25
13:18:24          all      1,38      0,00     22,54     67,81      0,00      8,27
13:18:30          all      1,25      0,00     17,00     67,94      0,00     13,81
13:18:36          all      1,33      0,00     16,87     51,04      0,00     30,76
13:18:42          all      1,27      0,00     17,91     58,54      0,00     22,28
13:18:48          all      1,39      0,00     14,60     39,19      0,00     44,82
13:18:54          all      1,78      0,00     13,68     35,70      0,00     48,85
13:19:00          all      0,43      0,00     10,63     54,44      0,00     34,50
13:19:06          all      6,58      0,00      8,81     13,92      0,00     70,69
13:19:12          all      0,89      0,00     27,40     19,09      0,00     52,63
13:19:18          all      1,63      0,00     20,10     39,95      0,00     38,32
13:19:24          all     18,95      0,00     16,89     34,02      0,00     30,15
13:19:30          all      4,21      0,00      9,03     17,51      0,00     69,24
13:19:36          all      0,87      0,00      3,40      2,13      0,00     93,60
13:19:42          all      2,17      0,00      0,46      0,13      0,00     97,25
13:19:48          all      2,90      0,00      1,53      2,17      0,00     93,40
13:19:54          all      2,17      0,00     11,44     17,07      0,00     69,31
13:20:00          all      1,10      0,00      1,86      0,04      0,00     97,00
13:20:06          all      1,71      0,00      0,63      0,38      0,00     97,28
13:20:12          all      1,93      0,00      1,30      0,42      0,00     96,36
13:20:18          all      0,12      0,00      0,38      0,04      0,00     99,46
Média:           all      3,32      0,00     10,74     24,91      0,00     61,03

Ошибки не появляются в /var/log/messages.

Мои диски - это два SSD Kingston SH103S3240G в RAID-1, разделенные следующим образом:

[root@cluster ~]# fdisk -l

Disk /dev/hda: 240.0 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1          14      112423+  fd  Linux raid autodetect
/dev/hda2              15         537     4200997+  fd  Linux raid autodetect
/dev/hda3             538       29185   230115060   fd  Linux raid autodetect

Disk /dev/hdc: 240.0 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1               1          14      112423+  fd  Linux raid autodetect
/dev/hdc2              15         537     4200997+  fd  Linux raid autodetect
/dev/hdc3             538       29185   230115060   fd  Linux raid autodetect

Disk /dev/md125: 235.6 GB, 235637702656 bytes
2 heads, 4 sectors/track, 57528736 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md125 doesn't contain a valid partition table

Disk /dev/md1: 4301 MB, 4301717504 bytes
2 heads, 4 sectors/track, 1050224 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/md127: 115 MB, 115015680 bytes
2 heads, 4 sectors/track, 28080 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md127 doesn't contain a valid partition table

Мой вопрос: как я могу диагностировать эту проблему, если она возникает, когда компьютер очень медленно вводит команды и видит результат?

Сервер настолько медленный, что вы не можете проанализировать вывод команд iotop и top.

  • Сделайте проверку диска. Убедитесь, что на жестких дисках нет ошибок.
  • Запустите статистику верхнего уровня или ввода-вывода в окне терминала и запустите процесс
  • Проверьте файлы журнала и посмотрите, отображаются ли какие-либо ошибки.

Это правда, иногда производительность сервера настолько плоха, что затрудняет использование команд отладки производительности, поэтому я предлагаю установить этот (в CentOS yum install sysstat) и используйте сар просмотреть исторические данные за период снижения производительности вашего сервера, чтобы определить причину.