|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (48)
просмотр истории страницы{toc} |
Большеинство настроек производительности сервера Carbon Reductor настраивает автоматически, но некоторые нужно подстраивать под конкретный сервер вручную. Если Ваш сервер перестал справляться с нагрузкой или вы хотите повысить запас производительности сервера, воспользуйтесь советами из этой статьи. |
h1. Как оценить производительность сервера |
... |
h3. /proc/interrupts |
Отображает то, как очереди сетевой карты распределены между ядрами. Для большеинства серверов мы советуем сделать количество очередей сетевой карты, куда приходит зеркало, равным количеству ядрер и привязать каждую очередь к своему ядру. |
|
... |
Частые проблемы в настройках процессора. |
h3. |
h3. Режим энергосбережения |
... |
{code} |
Альтернативный вариант с автоматическим определением оптимального значения (утилита из netutils-linux): |
{code} |
chroot /app/reductor/ |
rx-buffers-increase eth1 {code} h3. Распределение прерываний |
h4. Включение из консоли: |
|
h4. Реальные прерывания |
h5. Шаг 1. Выбрать пункт "Включить RSS для сетевых карт" |
|
Хорошие сетевые карты поддерживают несколько очередей для входящих пакетов. Каждая очередь привязана к одному или нескольким ядрам. Несмотря на указанный список зачастую сетевые карты по умолчанию коробки работают на первом ядре процессора. Обойти это можно распределив прерывания c помощью утилиты rss-ladder. |
{code} |
rss-ladder eth1 |
menu->Reductor DPI X->Прочие настройки->Включить RSS для сетевых карт |
{code} |
Используйте разные ядра (cores), гипертрединг лучше выключить, с ним легко получить неоптимальные настройки. |
Далее выйти с сохранением настроек. |
|
h5. Многопроцессорные системы |
h5. Шаг 2. Проверить запись в mirror_info.conf |
|
Если в системе больше одного физического процессора, лучше распределять прерывания сетевой карты в пределах ядер её локальной NUMA-ноды. rss-ladder делает это автоматически. Число очередей лучше подстроить под число ядер одного физического процессора, по умолчанию их число часто равно общему числу ядер. |
Открыть любым удобным для вас редактором ( например vim ) файл mirror_info.conf |
|
Пример - поставим eth2 8 объединённых очередей. |
{code} vim /app/reductor/cfg/userinfo/mirror_info.conf {code} |
|
Убедиться в наличие соответствующей записи "mirror rss" напротив каждого указанного интерфейса. |
{code} |
ethtool -L eth2 combined 8 |
eth1 - - mirror rss |
{code} |
Очереди бывают combined или отдельные tx и rx, зависит от модели и драйвера сетевой карты. |
h5. Шаг 3. Рестарт редуктора |
|
Не все многопроцессорные системы поддерживают NUMA, иногда память является общей для обоих процессоров и для сетевых карт. h5. Пример для Carbon Reductor 8 Мы не используем автоматическую настройку RSS, т.к. в редких ситуациях это приводит к зависанию сетевой карты. Так что настраивать это необходимо вручную: Создаем сам файл-хук: `/app/reductor/cfg/userinfo/hooks/start.sh` В него добавляем следующее содержимое: |
{code} |
#!/bin/bash client_post_start_hook() { rss-ladder eth0 || true rss-ladder eth1 || true } |
/app/reductor/service restart |
{code} |
и делаем файл исполнимым: `chmod a+x /app/reductor/cfg/userinfo/hooks/start.sh`. |
h4. Отложенные прерывания |
... |
* отказаться от VLAN, зеркалируя чистый трафик, без VLAN-тегов, либо снимать их при зеркалировании. ** в случае с QinQ может оказаться достаточно снять один тег. |
* использовать распределение нагрузки с помощью RPS, используя для захвата одно ядро (экспериментальная опция fwboost: isolated rss). |
|
h4. Большое число VLAN При большом количестве VLAN создаётся большое количество правил iptables в цепочке iptables \-t raw \-nvL PREROUTING. Их число можно сократить, перечислив через пробел интерфейсы с большим числом VLAN-тегов в опции: menu \-> Reductor DPI X \-> Настройки алгоритма фильтрации \-> Интерфейсы с большим количеством VLAN. Опция позволяет добиться 1-3% прироста производительности. |
h3. Различные значения rx-usecs |
... |
|
|
В кратце - можно за счёт повышения нагрузки на процессор слегка снять нагрузку с сетевой карты, уменьшая rx-usecs. |
... |
h3. NOTRACK |
Эта технология отключает наблюдение за состоянием соединения для пакетов к которым она была применена. Это приводит к значительному снижению нагрузки на процессор в случае, если состояние соединения нас не интересует (захват трафика). |
Эта опция включена по-умолчанию, выключать ее можно только в исключительных случаях. |
Технология NOTRACK отключает наблюдение за состоянием соединения для пакетов к которым она была применена. Она приводит к значительному снижению нагрузки на процессор в случае, если состояние соединения нас не интересует (захват трафика). |
|
h4. {code} |
Повышенная нагрузка может быть вызвана тем, что к сетевым картам, которые используются для приёма зеркала не применяется правило NOTRACK. |
|
{code} |
Проверить это можно: # посмотрев объёмы трафика по сетевым картам с помощью утилиты link-rate # проверив, что все сетевые карты, принимающие зеркало трафика, имеют ссылку в цепочку mirror_traffic с помощью команды iptables \-t raw \-nvL PREROUTING |
|
|
h2. Сеть провайдера |
h3. Масштабирование |
h3. Отправлять меньше трафика |
|
Проанализируйте что вы отправляете в зеркало. Возможно там есть что-то лишнее. |
|
# Иногда один и тот же трафик попадает в зеркало дважды — инкапсулированным и чистым, в таком случае от инкапсулированного можно избавиться. # Возможно отправляется трафик в обоих направлениях, а достаточно только исходящего. # Возможно там есть лишние VLAN'ы с служебным трафиком, а Carbon Reductor анализирует только часть. # Если зеркал трафика несколько, можно балансировать отправку, указывая порты коммутатора, с которых оно снимается (в случае "перекосов"). h3. Масштабирование |
h4. В рамках одного сервера |
... |
h3. Flow-control |
Для отправки зеркала рекомендуем отключать данную опцию, она чаще приводит к потерям, чем к сглаживанию пиковых нагрузок. |
По умолчанию Carbon Reductor отключает flow-control для сетевых карт принимающих зеркало трафика, так как она чаще приводит к потерям, чем к сглаживанию пиковых нагрузок. |
|
Проверить настройки можно с помощью команды: |
{code} |
ethtool -A eth2 rx off tx off |
ethtool -a eth2 |
{code} |
В Carbon Reductor скоро будет доступно в автоматическом режиме. |
h3. MTU |
... |