aoz1 Posted July 28, 2014 (edited) · Report post После длительного безуспешного шаманства решил обратится к сообшеству. Не могу выровнять загрузку по процессорам Исходные данные Centos 6 ядро 2.6.32 приложения: # ps -Af | grep postgres | wc -l 386 # ps -Af | grep php | wc -l 376 на машине стоят навороченный raid на 2208 чипе. все IRQ разбросанны по процессорам. Как и у сетевой карты. База данных меньше объема памяти так что все практически крутится в памяти. Советы от сюда https://code.google.com/p/pgcookbook/wiki/Database_Server_Configuration перебраны. Эффекта никакого И тем не менн когда смотриш top большинство процессов посгресса висит на 12 процессоре. Как это победить? может кто сталкивался? # cat /proc/interrupts | grep eth1- 115: 462480706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-0 116: 11 460794574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-1 117: 10 0 587859343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-2 118: 10 0 0 875812578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-3 119: 10 0 0 0 466812469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-4 120: 12 0 0 0 0 874452477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-5 121: 10 0 0 0 0 0 987899130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-6 122: 15 0 0 0 0 0 0 462152202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-TxRx-7 # cat /proc/interrupts | grep megasas 89: 0 0 0 0 0 0 3016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254794502 IR-PCI-MSI-edge megasas 90: 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34696709 0 IR-PCI-MSI-edge megasas 91: 0 0 0 0 0 0 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88301573 0 0 IR-PCI-MSI-edge megasas 92: 0 0 0 0 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0 0 16365218 0 0 0 IR-PCI-MSI-edge megasas 93: 0 0 0 0 0 0 28 0 0 0 0 0 0 0 0 0 0 0 0 10562312 0 0 0 0 IR-PCI-MSI-edge megasas 94: 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 42921162 0 0 0 0 0 IR-PCI-MSI-edge megasas 95: 0 0 0 0 0 0 1797 0 0 0 0 0 0 0 0 0 0 140435348 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 96: 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 24671284 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 97: 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 8526204 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 98: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2418468 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 99: 0 0 0 0 0 0 1 0 0 0 0 0 0 2378474 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 100: 0 0 0 0 0 0 0 0 0 0 0 0 4814339 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 101: 0 0 0 0 0 0 47 0 0 0 0 97387612 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 102: 0 0 0 0 0 0 75 0 0 0 12447492 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 103: 0 0 0 0 0 0 24 0 0 3561465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas 104: 0 0 0 0 0 0 10 0 1711739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge megasas # Edited July 28, 2014 by aoz1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
snvoronkov Posted July 29, 2014 · Report post Перименуйте тему, что-ли: "SMP & Postgres" Отмаза: Сначала не смотрел, т.к. samba не использую. Посоветовать ничего не могу - postgres не использую. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 29, 2014 · Report post А может это проблема с доступам к памяти чужого процессора в NUMA-системе? :) Покажите хоть конфигурацию, а то данных то и не дали никаких. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
aoz1 Posted July 29, 2014 (edited) · Report post А может это проблема с доступам к памяти чужого процессора в NUMA-системе? :) Покажите хоть конфигурацию, а то данных то и не дали никаких. спарка E5-2620 на Supermicro X9DRi-F 32G мозгов а принципиально? Тут вопрос не в посгресе а в линуксе. Посгрес запускает по одному форку на каждую tcp или socket сессию. Так же как апач или php-fcgi или 90% старотипных unix приложений. (уже кинологическая терминология пошла) Вопрос. почему ядро не раскидывает эти форки симметрично по процессорам. Сортировка по last used cpu: # top -b -n1 | grep postgres | awk '{print $12}' | sort -n | uniq -c 109 0 36 1 22 2 8 3 4 4 1 5 8 6 16 7 42 8 9 9 2 11 86 12 10 13 7 14 1 15 2 16 2 18 10 19 6 20 2 21 Тут понятно к irq сетевой карты привязка: # top -b -n1 | grep php-fpm | awk '{print $12}' | sort -n | uniq -c 45 0 48 1 35 2 45 3 38 4 53 5 50 6 41 7 1 8 5 12 4 13 1 18 1 20 Edited July 29, 2014 by aoz1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 29, 2014 · Report post Ну ядро то древнее, ветка 2.6 вроде свежими фичами не блещет. Можно покрутить шедуллер, конечно, в сторону Completely Fair Scheduler (CFS), но... Зачем это? У вас нет нигде 100% нагрузки, зачем что-то изобретать если все нормально работает? Так же как апач или php-fcgi или 90% старотипных unix приложений. process vs thread это сложная тема, не стоит списывать это на "старотипность", это не имеет никакой связи. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...