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

Высокая нагрузка, низкий уровень ЦП, памяти и дискового ввода-вывода - более высокий сервер

Эта проблема беспокоит меня в течение последних нескольких дней, поскольку я потратил более 40 часов на интенсивное изучение этой проблемы.

Фактически мы используем звездочку 1.4.42, которая, насколько я понимаю, устарела, однако это последняя стабильная версия звездочки, которая работает с нашими вышестоящими поставщиками в отношении факсов (обновление не является вариантом).

Теперь проблема в том, что у нас есть следующий сервер спецификации:

Dell Poweredge 1950 года

Четырехъядерный процессор Xeon 2,5 ГГц E5420

ОЗУ ECC 8 ГБ

4 жестких диска SAS емкостью 73 ГБ, 10 тыс. Об / мин

RAID-контроллер Dell PERC 5 в Raid 10

Centos 5.9 X64

Форматирование диска EXT3

Теперь проблема в том, что у нас очень высокая нагрузка на сервер при 100 одновременных вызовах в asterisk. Я не могу разобраться. У меня есть еще один сервер с аналогичной спецификацией, но его Quad core2duo, raid 1, 2 жестких диска по 250 ГБ 7200 об / мин и 8 ГБ оперативной памяти без ECC, который обрабатывает 200+ одновременных вызовов и составляет около 0,3 нагрузки на сервер.

Я действительно нахожусь в этом и не могу понять.

Я приложил скриншоты лучших результатов и результатов iotop

Снимки экрана показывают низкое использование ЦП, низкое использование памяти и 0% времени ожидания при вводе-выводе диска.

верхняя - http://chostwales.com/images/hosted/Super-load.jpg

iotop - http://chostwales.com/images/hosted/HighDISKIO.jpg

Любая помощь / идеи будут действительно оценены по этому поводу.

Чтобы уточнить, это 100 одновременных вызовов с примерно 1 новым вызовом каждую секунду. (Как упоминалось выше, у меня есть серверы с гораздо меньшими характеристиками, которые делают 10 новых вызовов каждую секунду, и нагрузка практически не меняется)

Чтобы уточнить:

cat / proc / interrupts показывает (в настоящее время система не используется)

[root@IS-21418 ~]# cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3       
  0:    7855099          0          0          0    IO-APIC-edge  timer
  1:          3          0          0          0    IO-APIC-edge  i8042
  8:          1          0          0          0    IO-APIC-edge  rtc
  9:          0          0          0          0   IO-APIC-level  acpi
 12:          4          0          0          0    IO-APIC-edge  i8042
 66:         24          0          0          0   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb4
 74:         34     106102          0          0   IO-APIC-level  uhci_hcd:usb3, uhci_hcd:usb5
 82:       4143      50727          0          0   IO-APIC-level  megasas
 90:     123985          0          0          0         PCI-MSI  eth0
NMI:        435        195        209        215 
LOC:    7852754    7851976    7852615    7851820 
ERR:          0
MIS:          0


[root@IS-21418 ~]# vmstat 1 20
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 7318888  23108 296540    0    0   125    61 1169 2581  2  3 93  1  0
 0  0      0 7318708  23124 296524    0    0     8   280 9704 20440  7  6 87  0  0
 0  0      0 7318820  23140 296768    0    0   128   280 9144 19752  2  5 93  0  0
 0  0      0 7318820  23180 296728    0    0     0  1620 8162 16012  2  2 97  0  0
 0  0      0 7318940  23208 296760    0    0    12   392 9729 22355  3  5 92  0  0
 0  0      0 7318544  23216 296752    0    0     0   100 9679 20152  2  2 96  0  0
 0  0      0 7317852  23232 296836    0    0     8   332 9753 21294  8  9 84  0  0
 0  0      0 7317720  23240 296828    0    0     4   160 9702 22166  3  3 95  0  0
 0  0      0 7317612  23248 296908    0    0     0   192 9643 20168  1  4 95  0  0
 0  0      0 7317340  23256 296900    0    0     0   112 9043 19541  2  2 96  0  0
 0  0      0 7315860  23264 296944    0    0     4   156 9025 21814  3  4 92  0  0
 0  0      0 7315624  23288 297176    0    0   140   504 9221 19047  6  6 87  1  0
 0  0      0 7314872  23296 297140    0    0     4   112 9499 21123  3  8 89  0  0
 3  0      0 7314492  23344 297092    0    0     4  1784 9725 24151  5  6 88  0  0
 1  0      0 7314796  23352 297192    0    0     0   176 9624 22662  4  7 89  0  0
 3  0      0 7314556  23368 297176    0    0     4   220 9789 23502  5  6 88  0  0
 2  0      0 7313820  23384 297196    0    0     4   348 9531 23117 14 13 74  0  0
 1  0      0 7313468  23432 297148    0    0    12   504 9852 25504  6 11 83  0  0
 2  0      0 7313104  23440 297268    0    0     4   112 9610 26564  6  7 88  0  0
 0  0      0 7312364  23464 297244    0    0   128   356 9608 23673  5  8 87  0  0

Ссылка на Dmesg ниже

С уважением

Подобные вещи сильно различаются. Например, вы записываете звонки? Если да, то используете ли вы Monitor или MixMonitor? Монитор обрабатывается в том же потоке, что и вызов, MixMonitor в своем собственном потоке. А если вы записываете, у вас, вероятно, хороший диск. Я решил некоторые из этих проблем, отключив время в / etc / fstab.

Чтобы получить представление о том, что происходит в вашей системе, вы можете запустить vmstat. Простое vmstate 1 20 даст вам возможность посмотреть, и вы увидите, что «ест» процессор.

Еще одна вещь, которую вы можете сделать с помощью asterisk, - это удалить ненужные модули, добавив строки «noload =>» в modules.conf. Часто их бывает много. Вам просто нужно потратить некоторое время, чтобы узнать, какие модули вы используете, а какие не используете, так как все они загружаются автоматически во время запуска.

Еще одна вещь, которую следует учитывать, - это перекодирование. Если вы принимаете вызовы с использованием кодека G.729A, а ваши программные / настольные телефоны используют G.711u, вы получите снижение производительности, поскольку он должен перекодировать эти кодеки и не может просто предварительно сформировать пакет-2. -пакетный мост.

Я нашел Мунина полезным для выявления узких мест. Вы можете легко определить пределы, когда график не масштабируется, как другие.