aoz1 Posted July 28, 2014 Posted July 28, 2014 (edited) После длительного безуспешного шаманства решил обратится к сообшеству. Не могу выровнять загрузку по процессорам Исходные данные 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
snvoronkov Posted July 29, 2014 Posted July 29, 2014 Перименуйте тему, что-ли: "SMP & Postgres" Отмаза: Сначала не смотрел, т.к. samba не использую. Посоветовать ничего не могу - postgres не использую. Вставить ник Quote
DVM-Avgoor Posted July 29, 2014 Posted July 29, 2014 А может это проблема с доступам к памяти чужого процессора в NUMA-системе? :) Покажите хоть конфигурацию, а то данных то и не дали никаких. Вставить ник Quote
aoz1 Posted July 29, 2014 Author Posted July 29, 2014 (edited) А может это проблема с доступам к памяти чужого процессора в 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
DVM-Avgoor Posted July 29, 2014 Posted July 29, 2014 Ну ядро то древнее, ветка 2.6 вроде свежими фичами не блещет. Можно покрутить шедуллер, конечно, в сторону Completely Fair Scheduler (CFS), но... Зачем это? У вас нет нигде 100% нагрузки, зачем что-то изобретать если все нормально работает? Так же как апач или php-fcgi или 90% старотипных unix приложений. process vs thread это сложная тема, не стоит списывать это на "старотипность", это не имеет никакой связи. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.