12.2.8. Оптимизация Samba

12.2.8. Оптимизация Samba

Ваш Samba-сервер медленно работает, и вы уже устали от постоянных жалоб пользователей? Лучшим выходом из данной ситуации будет покупка нового винчестера. Лучше всего покупать SCSI-винчестер со скоростью 10000 оборотов в минуту. В крайнем случае подойдет IDE-диск, поддерживающий режим ATA133 и работающий со скоростью 7200 оборотов в минуту. При покупке такого винчестера обратите внимание на следующие факторы:

? ваша материнская плата должна поддерживать режим ATA133;

? у вас должен быть специальный кабель для подключения жесткого диска (если материнская плата поддерживает ATA100/133, такой кабель у вас будет);

? покупайте винчестер с большим объемом кэша: на рынке можно найти несколько моделей винчестеров, различающихся маркировкой, но в одном случае вы получаете 2 Мб кэша, а во втором — 640 Кб (или 1 Мб, но все равно меньше, чем в более дорогой модели).

Если же денег на покупку такого винчестера нет, попробуем оптимизировать наши настройки. Во-первых, установите значение yes для директивы wide links в файле конфигурации smb.conf — это должно повысить производительность сервера, если в общих каталогах имеются ссылки.

Во-вторых, в дистрибутивах на ядре 2.4 есть демон bdflush. Он занимается записью буферов, содержащих модифицированные данные файловой системы, на диск. Настройки по умолчанию не очень эффективны:

30 64 64 256 500 3000 60 0 0

Попробуем немного оптимизировать настройки bdflush. Для этого откройте файл /etc/sysctl.conf и добавьте в него следующую строку:

vm.bdflush = 80 500 64 64 15 6000 6000 0 0

Этим мы говорим демону, чтобы он записывал буферы на диск, когда буфер кэша файловой системы заполнен на 80 процентов.

После этого нужно перезапустить сервис network:

# service network restart

Если вам нельзя ни на секунду останавливать сервис network, вместо модификации файла /etc/sysctl.conf введите следующую команду:

# sysctl -w vm.bdflush="80 500 64 64 15 6000 6000 0 0"

Чтобы заставить ваш Samba-сервер работать быстрее, попробуем поэкспериментировать с кэшированием памяти: мы будем использовать минимум 60 процентов памяти для кэша.

sysctl -w vm.buffermem = "60 10 60"

Примечание

Последние два параметра (10 и 60) сейчас не используются. Значения по умолчанию — «2 10 60».

Данный текст является ознакомительным фрагментом.