Как создать свой хостинг "с нуля" - Настройка параметров системы
ОГЛАВЛЕНИЕ
Настройка параметров системы
Настройка параметров системы преследует две цели. Первая цель: повысить уровень безопасности путем изоляции пользователей друг от друга и от системы и вторая - достичь оптимальной производительности хостинга.
Для изоляции клиентов хостинга на уровне файловой системы мы воспользовались системой unix permissions. Теперь необходимо изолировать клиентов на уровне доступа к списку процессов, используемых ресурсов и т.п. Для этого в файл /etc/sysctl.conf вносим строчку
security.bsd.see_other_uids=0
и перечитываем конфигурацию /etc/rc.d/sysctl restart.
Для того чтобы при падении программ система писала core-файлы в один каталог, а не во всю файловую систему, также добавляем строчки
kern.sugid_coredump=0
kern.corefile=/var/tmp/%N.core
Для оптимизации работы системы пропишем следующие параметры:
kern.ipc.maxsockbuf=16777216
net.inet.tcp.rfc1323=1
net.inet.tcp.sendspace=1048576
net.inet.tcp.recvspace=1048576
net.inet.tcp.sack.enable=1
kern.maxfiles=204800
kern.maxfilesperproc=200000
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535
net.inet.ip.portrange.randomized=0
net.inet.tcp.nolocaltimewait=1
kern.ipc.shmmax=268435456
Детальное их описание довольно сложно и выходит за рамки данного руководства; интересующимся следует обратиться к текстам докладов Первой конференции российскийх вебразрботчиков.
Выводы
Разумеется, это - всего лишь прототип реального хостинга и при количестве клиентов до нескольких сотен будет работать в предлагаемой конфигурации. Для развертывания системы в эксплуатацию с несколькими тысячами пользователей необходимо, как минимум, разнести вебсервер и сервер БД, а для биллинга выделить отдельную машину. Также следует рассмотреть вопросы организации резервных копий (backup), систему миграции пользователей между серверами хостнговой площадки, а также - систему миниторинга пользовательской активности. Возможно, об этом - в следующих статьях.