Настройка файловых дескрипторов в /etc/sysctl.conf
Недавно я узнал, что возможность увеличения количества виртуальных хостов, которые мы можем обслуживать через Apache, зависит от файловых дескрипторов.
они говорят, что значение должно быть добавлено в /etc/sysctl.conf как
fs.file-max = 65536
Какая корреляция между количеством ОЗУ у меня и числом выше?
Подскажите как;
"У вас должно быть ОЗУ X ГБ и ЦП Y ГГц, чтобы можно было установить для fs.file-max значение Z"
Я в основном хочу знать отношения X - Y - Z, чтобы иметь возможность выполнить настройку.
Сервер - это Ubuntu 8.04, и я могу увеличить ОЗУ или ЦП практически до любого числа через моего поставщика облачных серверов.
PS: или почему я должен заботиться об этом? Есть ли способ, которым я могу настроить свою систему так, чтобы она служила моей памяти?
это учебник (официальный документ plesk)
Добавьте следующую строку в /etc/sysctl.conf:
$ fs.file-max = 65536
Запустите следующую команду оболочки:
$ /sbin/sysctl -w fs.file-max=65536
Обратите внимание, что значение fs.file-max может быть равно до 220=1048576).
Добавьте следующую строку в начало /etc/init.d/apache2 и /usr/sbin/apache2ctl:
$ ulimit -n `cat /proc/sys/fs/file-max`
Измените значение __FD_SETSIZE в файлах /usr/include/bits/typesizes.h и /usr/include/nptl/bits/typesizes.h. Это должно быть как:
$ define __FD_SETSIZE 65536
Загрузите и восстановите пакеты:
$ apt-get install apt-src $ apt-src --build install openssl $ dpkg -i libssl*.deb openssl*.deb $ apt-src --build install apache2 $ dpkg -i libapr*.deb apache2_*.deb apache2-common*.deb apache2-mpm-prefork*.deb apache2-utils*.deb $ cp /opt/psa/suexec/psa-suexec2 /usr/lib/apache2/suexec2 /etc/init.d/apache2 restart $ apt-src --build install libc-client2002edebian $ dpkg -i libc-client-dev_2002edebian1-*.deb libc-client2002edebian*.deb mlock*.deb $ apt-src --build install php4 $ dpkg -i `ls *deb|grep php4|grep -v apache-mod`
1 ответ
Я был бы удивлен, если бы ваша установка Ubuntu по умолчанию не имела более 65536 доступных. Проверьте свои текущие настройки с
$ sudo sysctl fs.file-max
Общее правило заключается в том, что вы можете увеличить fs.file-max
параметр на 64 для каждого 1 МБ оперативной памяти.
e.g. 2 gigabytes = 2048 * 1MB
= 2048 * 64
= 131072
Это в два раза больше 65536. Я бы не стал использовать это, если вам на самом деле не нужно его использовать, потому что в некоторых случаях это может снизить вашу производительность. Так же важно, как параметр sysctl, __FD_SETSIZE, потому что это то, что ваши приложения используют, когда они используют систему select(2)
вызов.
В общем, мой совет заключается в том, что>1000 виртуальных хостов на одном экземпляре Apcahe - это слишком большой кошмар для управления на одной машине. Один скомпрометированный хост, любое время простоя и т. Д., И вы получите еще больше сайтов, кричащих на вас.
Я работал в веб-хостинге более 7 лет, и мой совет - выбрать другую машину по многим причинам, одна из которых - производительность, другая - простота обслуживания, все ваши яйца в одной корзине - другая и т. Д. И т. Д.