Недавно я узнал, что возможность увеличения количества виртуальных хостов, которые мы можем обслуживать через 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`
Я был бы удивлен, если бы в вашей установке 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 VirtualHosts на одном экземпляре Apcahe - это слишком большой кошмар для управления на одной машине. Один скомпрометированный хост, любое время простоя и т. Д., И у вас есть еще много сайтов, кричащих на вас.
Я проработал в веб-хостинге более 7 лет, и мой совет - купить другую машину по многим причинам: производительность - одна из них, простота обслуживания - другая, все ваши яйца в одной корзине - это другая и т. Д. И т. Д.