Игорь Олемской — практические заметки по системному администрированию Linux CentOS

Архив тега ‘kernel’

CentOS 6 — обновление сетевого драйвера Realtek r8168

3 комментария

По-умолчанию CentOS определяет некоторые сетевые платы realtek как r8169, что вызывает потери пакетов, медленную скорость и т.п. Решение простое — обновите драйвер.

Драйвер доступен в репозитории elrepo под названием kmod-r8168.

rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm
yum install kmod-r8168

Если вы используете OpenVZ, последний собранный rpm драйвера доступен в репозитории Southbridge (собранный драйвер требует определенную версию ядра — мы используем последнюю стабильную версию OpenVZ-ядра на момент сборки rpm kmod-r8168):

rpm -Uvh http://rpms.southbridge.ru/southbridge-rhel6-stable.rpm
yum install kmod-r8168

11.11.2012

Написал Игорь Олемской

Рубрики: Мои записи

Теги: , , , ,

CentOS 6 — обновление сетевого драйвера e1000e

4 комментария

Стандартный драйвер e1000e то и дело глючит или вообще падает.

Рекомендую выполнить следующие шаги, чтобы добиться стабильной работы сервера с использованием e1000e.

1. Добавьте в /etc/rc.local:

echo performance >/sys/module/pcie_aspm/parameters/policy
/sbin/grubby --args=pcie_aspm=off --update-kernel=ALL

Таким образом pcie_aspm будет добавляться в grub.conf после обновления ядра автоматически.

2. Создайте и запустите скрипт, который при необходимости исправит баг в настройках сетевой платы:

        eth_make () {
            echo "This fixup is applicable to your hardware"

            var=$(ethtool -e $1 | grep 0x0010 | awk '{print $16}')
            new=$(echo ${var:0:1}`echo ${var:1} | tr '014589bc' '2367abef'`)

            if [ ! ${var:0:1}${var:1} == $new ]; then
                echo "executing command: ethtool -E $1 magic $dev offset 0x1e value 0x$new"
                ethtool -E $1 magic $dev offset 0x1e value 0x$new
                echo "Change made. You *MUST* reboot your machine before changes take effect!"
            fi
        }

        eth () {
            bdf=$(ethtool -i $1 | grep "bus-info:" | awk '{print $2}')
            dev=$(lspci -s $bdf -x | grep "00: 86 80" | awk '{print "0x"$5$4$3$2}')

            case $dev in
                0x10d38086)
                    echo "$1: is a \"82574L Gigabit Network Connection\""
                    eth_make $1
                ;;
                0x10f68086)
                    echo "$1: is a \"82574L Gigabit Network Connection\""
                    eth_make $1
                ;;
                0x150c8086)
                    echo "$1: is a \"82583V Gigabit Network Connection\""
                    eth_make $1
                ;;
                *)
                #echo "No appropriate hardware found for this fixup"
                ;;
            esac
        }
        eth eth0
        eth eth1

3. Установите драйвер kmod-e1000e. Драйвер доступен в репозитории elrepo.
Если вы используете OpenVZ, последний собранный rpm драйвера доступен в репозитории Southbridge (собранный драйвер требует определенную версию ядра — мы используем последнюю стабильную версию OpenVZ-ядра на момент сборки rpm kmod-e1000e).

11.11.2012

Написал Игорь Олемской

Рубрики: Мои записи

Теги: , , ,

Hetzner — решение ACPI conflict и падающего сервера

2 комментария

Новые серверы в Hetzner, работающие на CentOS 6.3 (OpenVZ), время от времени зависают — помогает только Manual hardware reset.
Единственное подозрение вызывает строка "ACPI: resource 0000:00:1f.3 [io 0xf040-0xf05f] conflicts with ACPI region SMBI [io 0xf040-0xf04f]" в dmesg.

Красивого решения пока не придумали, зато есть решение надежное, которое исключает падения в будущем. Добавляем строку в /etc/rc.local

/sbin/grubby --args=acpi=off --update-kernel=ALL

Таким образом, отключаем ACPI для установленного ядра, а так же делаем это автоматически после обновлений.

11.11.2012

Написал Игорь Олемской

CentOS 5: решение проблемы большого пинга (2000+ ms)

4 комментария

Если ваш сервер под ОС CentOS 5 начинает тормозить, еле откликаться и т.п., при этом загрузка процессора и Load Average в норме — наиболее вероятно, что вам нужно обновить сетевой драйвер.

Данная проблема неоднократно замечена при аренде немецких серверов (hetzner.de, тариф EQ).

Проверить, в этом ли проблема, просто. Запустите:

lspci -v

И найдите ваше Ethernet-устройство. Если в описании указано «RTL8111/8168B» и «rev2», значит это ваш случай.

Подробно о решении задачи написано по ссылке: http://wiki.centos.org/HardwareList/RealTekRTL8111b

Если вы пользуетесь OpenVZ, предлагаем универсальное решение — собранный пакет dkms-r8168-openvz (приложение, которое автоматически после переустановки ядра, при загрузке системы компилирует и устанавливает нужный сетевой драйвер). Установить его можно из репозитория Southbridge:

wget http://rpms.southbridge.ru/southbridge-stable.repo --output-document=/etc/yum.repos.d/southbridge-stable.repo
yum install dkms-r8168-openvz

Перезагрузите систему и наберите

dmesg | grep r816

Если на экране появятся ссылки на «r8168», значит вы уже работаете на новом драйвере. Если — «r8169», значит загрузился старый драйвер и необходимо еще раз перезагрузиться (после второй перезагрузки будет установлен драйвер «r8168»).

В дальнейшем, при обновлении ядра, dkms будет автоматически компилировать и устанавливать нужный драйвер для сетевой карты.

07.09.2009

Написал Игорь Олемской