Смотри также Когда навалом процессоров… Часть 2
Для улучшения производительности в многопроцессорных (в том числе Multithreading ) системах с ОС Solaris можно использовать выделенные процессоры для обработки прерываний устройств ввода-вывода. Это позволяем снизить количество переключений контекста для процессоров, увеличить попадания в кэш, в конечном счете отдать больше ресурсов для обработки пользовательских задач.

Solaris 10:

Для того, чтобы привязать процессор к обработке прерываний устройства:
1.  Определяем процессор, на который попадает большинство системных прерываний по данному адаптеру (например по сетевому адаптеру nxge):

# intrstat 2 1|egrep 'device|nxge'
..
device | cpu92 %tim cpu93 %tim cpu94 %tim cpu95 %tim
nxge#0 | 0 0.0 0 0.0 0 0.0 0 0.0
device | cpu96 %tim cpu97 %tim cpu98 %tim cpu99 %tim
nxge#0 | 20816 67.4 13877 33.6 0 0.0 0 0.0
device | cpu100 %tim cpu101 %tim cpu102 %tim cpu103 %tim
nxge#0 | 0 0.0 0 0.0 0 0.0 0 0.0
...

В нашем случае — это процессоры 96 и 97.

2.  Проверяем количество переключений контекста для этих процессоров ( колонка csw в выводе команды mpstat ):
# mpstat 1 3 |egrep 'CPU|^ 96|^ 97'
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
96 0 0 3385 4021 3970 84 0 9 53 0 466 3 13 0 83
97 0 0 1028 1295 1207 131 2 14 29 0 691 9 5 0 87
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
96 0 0 3032 3552 3510 71 0 7 45 0 429 4 12 0 84
97 0 0 981 1201 1131 116 1 23 27 0 429 2 4 0 94
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
96 0 0 3049 3598 3547 78 0 9 34 0 645 12 12 0 77
97 0 0 980 1226 1139 160 1 5 29 0 245 3 5 0 92

3.  Создаем процессорный сэт с процессорами 96 и 97
# psrset -c 96 97
created processor set 1
processor 96: was not assigned, now 1
processor 97: was not assigned, now 1

4. Проверяем переключений контекста:
# mpstat -P 1 1 3
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
96 1 0 2195 2462 2434 41 1 4 66 0 325 6 8 0 86
97 1 0 775 769 725 63 1 8 58 0 354 7 3 0 91
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
96 0 0 3103 3634 3634 0 0 0 34 0 0 0 11 0 89
97 0 0 1032 1193 1192 0 0 0 16 0 0 0 3 0 97
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
96 0 0 2941 3426 3425 0 0 0 44 0 0 0 12 0 88
97 0 0 997 1172 1170 0 0 0 18 0 0 0 3 0 97

Solaris 9:
Т.к. утилиты intrstat в Solaris 9 нет, то ориентироваться можно только на вывод команды mpstat (колонка intr). Выбираем процессор или несколько процессоров с наибольшим количеством прерываний и переносим их в сэт.

Ссылки в тему:
Solaris Processor Sets Made Easy
Monitoring Network Performance from Oracle STATSPACK

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru МоёМесто.ru Mister Wong Яндекс Закладки

Комментарии (2) на запись “Когда навалом процессоров… Часть 1”

  1. Mikhail Zh пишет:

    Для систем с каким минимальным колличеством процессоров данный совет актуален? Спасибо

  2. ikorolev пишет:

    Хм, ну минимум должно быть 2 процессора ;)
    Зависит от характера нагрузки, я бы рекомендовал попробовать начиная от 4 процессоров (при очень высокой нагрузке на ввод-вывод и умеренной на процессора, или большой системной загрузке процессоров ). Попробовать, посмотреть — как система себя поведет, если не помогает — всегда можно вернуть все обратно.