Настраиваем свой первый VDS сервер в роли веб-сервера №2

18 января 2013, 10:09
Установка комплекса управления игровыми серверами — Open Game Panel


Open game panel — он же OGP — единственное из мною найденных бесплатное решение, которое позволяет осуществлять мониторинг и управление разнообразными игровыми серверами. На момент написания статьи поддерживаются более 50 разных игр с серверами на платформах Windows и Linux. В том числе такие популярные как Counter-Strike (2D, 1.5, 1.6, Source, GO) и Minecraft( Vanilla, Bukkit)
Состоит комплекс из двух частей — веб-морды, через которую осуществляется мониторинг и управление(фронтэнд) и агента — сервиса, который висит на машинах с игровыми серверами и передает логи в фронтэнд, а команды из фронэнда игровым серверам.
• Первым делом регистрируемся на http://www.opengamepanel.org — для установки это не обязательно, но на сайте можно скачать дополнительные модули(например систему биллинга), темы и прочие плюшки.
• Устанавливаем необходимые пакеты

aptitude update
aptitude install libxml-parser-perl libpath-class-perl libarchive-any-perl screen


• Если система x64, то дополнительно устанавливаем ia32-libs

aptitude install ia32-libs


• Скачиваем сам агент

wget «http://www.opengamepanel.org/downloads/ogp_agent_nightly.tar.gz» -O agent.tar.gz
tar xf agent.tar.gz
cd agent


• Устанавливаем. Внимание — я предварительно создал пользователя в системе, включил его в группы root и sudo и создал ему домашний каталог — это все необходимо для того чтобы агент корректно работал.

bash ./install.sh


• У нас будут спрашивать имя пользователя под которым будет крутиться сервис — нужно указать того, про которого я говорил в предыдущем пункте, его пароль, директорию в которой будут находиться исполняемые файлы(/home/имя пользователя/OGP) и попросят ввести ключ агента — это не пароль пользователя, а ключ управления агентом, он нам пригодится позже, и еще нас попросят согласиться с правилами политики Steam.
• После установки залогиниваемся под созданным пользователем и запускаем

cd /home/имя пользователя/OGP
perl ./ogp_agent.pl —log-stdout


• Нам должны написать что все в порядке, процесс запущен и слушает на 12679 порту.
• Нажимаем ctrl+c, логинимся под рутом и прописываем — это нужно для того чтобы сервис стартовал при запуске ситемы

update-rc.d ogp_agent defaults


• Если серверов (выделенных или виртуальных) несколько, то агент необходимо установить на каждом
• Теперь установим веб-интерфейс от OGP, скачиваем архив и распаковываем

wget «http://www.opengamepanel.org/downloads/ogp_web_nightly.tar.gz» -O upload.tar.gz
tar xf upload.tar.gz


• Перемещаем содержимое папки upload в папку, в которой у нас лежит сайт
• В браузере открываем адрес_сайта.зона/папка_с_ogp/ и выбираем язык, если вдруг насм говорят что не хватает прав на создание каких-либо файлов или папок то выдаем права 777 chmodом, для этого зайдем в папку с ogp и выполним команду.

chmod 777 —v —R *


• Возвращаемся в веб-интерфейс и нажимаем «Повторить», потом «Дальше»
• Указываем параметры подключения к БД и нажимаем «Дальше»
• Регистрируем учетную запись администратора и нажимаем «Дальше»
• Далее следуем инструкциям, возможно в следующей статья я опишу процесс добавления серверов в OGP

opengamepanel
, ubuntu server
, pure-ftpd
, apache2
, nginx
, linux
, eaccelerator
, memcached
, vds

+35
10692
639
xHellKern 11,7
комментарии (86)
—10
vizgl, 28 ноября 2012 в 23:40 (комментарий был изменён) #
Отличная статья. Всё подробно разжевано, бери и глотай настраивай.
0
smallbox, 29 ноября 2012 в 23:38 #


Беги.
+3
Assargin, 28 ноября 2012 в 23:52 #
О территориальном расположении и о трафике коммент.
Про Германию вы говорите — безлимитный трафик, про xUSSR же — псевдобезлимитный.
Но в то же время у одного из самых популярных хостеров Германии — Hetzner — ограничение на Dedicated сервера — 10 терабайт, после чего внешка обрезается со 100mbit/s до 10 (или плати по ~7евро за каждый доп.терабайт). 10 терабайт для 100мегабитного канала — это примерно 1/3 от его непрерывной работы в течение месяца. И это у них называется безлимитный (unlimited). Таким образом, получается, что это тоже псевдобезлимит. Сложно, наверно, достичь его границ, это надо упорно прокачивать трафик на всю ширину канала в общем сложности треть месяца. Но, в то же время, очень даже можно, если делаешь видео- или адулт-сервис.

Я как-то заинтересовался, кто-нибудь вообще предлагает именно безлимит самый что ни на есть. Было это давно, по истечении 5 минут гугления наткнулся разве что на 100tb.com. У них на серверах канал 1gbit's, и явно и раздельно предлагаются unlimited тарифы (собственно эти самые 100 терабайт, опять же примерно 1/3 от полной загрузки канала) и, внимание — unmetered. Вот это и был тот самый безлимитный безлимит, да и еще на гигабитном канале. Прокачивай свои ~300+ терабайт в месяц, чувак. Цены на безлимит и «безлимииит!», конечно. ощутимо разнятся (вообще, серверов дешевле ~200евро я там не видал, а за unmetered еще примерно столько же надо было доплачивать)

Хотел узнать, кто-нибудь еще знает аналогичные unmetered предложения от других провайдеров?
0
MechanisM, 29 ноября 2012 в 07:56 #


Посмотрите на ovh.co.uk
+3
xHellKern, 29 ноября 2012 в 08:26 #


nqhost.com — не замечал никаких ограничений, ни в правилах предоставления услуг, ни после 5 Тб трафика.
0
qxfusion, 29 ноября 2012 в 13:50 #


fdcservers.net — несколько ДЦ в Европе, очень выгодные тарифы на трафик
0
Assargin, 29 ноября 2012 в 18:54 #


Да, эти чуваки круты, у них даже 10gbit/s unmetered каналы есть
0
qxfusion, 29 ноября 2012 в 19:00 #


брали у их реселлеров сервер 1Gbps — в реале конечно канал полностью не удалось загрузить — но до 700-800Mbps утилизация получить смогли, дальше уперлось в сеть.
+4
temoon, 28 ноября 2012 в 23:59 #

Копируем файл /etc/apache2/sites-available/default в /etc/apache2/sites-enabled/адрес_сайта


Прошу прощения за особое занудство, но тут лучше сделать так (так оно и задумывалось разработчиками апача):
Копируем файл /etc/apache2/sites-available/default в /etc/apache2/sites-available/адрес_сайта и делаем ссылку с /etc/apache2/sites-available/адрес_сайта на /etc/apache2/sites-enabled/адрес_сайта.
Для nginx аналогично. Делать так нужно для того, чтобы легко и просто «включать/выключать» сайты, убирая симлинки, не заморачиваясь с перевозкой самих конфигов.
+14
verd, 29 ноября 2012 в 00:10 #


Еще проще воспользоваться командой a2ensite адрес_сайта.
0
xHellKern, 29 ноября 2012 в 08:29 #


Вы все правильно говорите, и это не занудство. Но я статью пытался написать так, чтобы ею без проблем смогли воспользоваться люди, которые в первый раз все это увидели и перегружать их мозг информацией по тому, как устроен linux мне не хотелось.
+16
homm, 29 ноября 2012 в 08:51 #


Нахрена, скажите, людям, первый раз все увидевшим, пересобирать ядро?
0
xHellKern, 29 ноября 2012 в 10:16 #


ИМХО лучше попробовать сделать эту процедуру в самом начале, до того как на сервере есть какие-либо данные, а второй возможный профит от этой операции заключается в том что некоторые хостеры в своих шаблонах имеют ядра, например, с iptables без filtering и NAT, а после смены ядра NAT замечательным образом работает.
+1
homm, 29 ноября 2012 в 10:25 #


Получается, компилировать ядро надо только на некоторых хостингах, если нужна некоторая функция. А статья написана в стили «нет времени объяснять, прыгай в машину».
+13
iXCray, 29 ноября 2012 в 00:24 #
апач не нужен, вместо memcached нужно redis + phpredis (module), можно сайты не настраивать — nginx умеет из домена высчитывать папку, какую нужно. Ну и ко всему прочему можно php в режиме fastCGI, а вместо ftp использовать sftp.
0
icCE, 29 ноября 2012 в 09:41 #


Вы сорвали ответ прям с языка :)
—1
la0, 29 ноября 2012 в 09:44 (комментарий был изменён) #


Добавлю, что если у вас отвалился mysql(или его сознательно остановили), по FTP ничего не сделать.
Есть вот такая штука: vdsadmin.ru/ftp-proftp-ftpasswd
+3
iXCray, 29 ноября 2012 в 11:49 #


sftp = ftp via ssh,) ftp вообще не нужен, он не безопасен
0
alexxz, 29 ноября 2012 в 12:28 #


У этих двух протоколов из общего только то, что они оба — протоколы передачи файлов. Так что sftp != ftp via ssh
0
iXCray, 29 ноября 2012 в 12:50 #


Если уж придираетесь, придирайтесь до конца, чтобы не выглядеть совсем уж невежественным :D
ftp = file transfer protocol — и есть протокол передачи файлов, в каком бы контексте я его ни применял,)

А по существу, я акцентирую внимание на большом количестве методов защиты ssh, включая использование ключей, по сравнению с ftp, а также на факте, что подключение по ssh будет иметь права подключившегося пользователя, а не демона ftpd, что тоже немаловажно.
—1
alexxz, 29 ноября 2012 в 13:52 #


Не вскякий протокол передачи файлов можно называть ftp. WebDav, например, тоже протокол передачи файлов.

Если вы упоминаете ftp в каком бы то ни было контексте, вы не должны под ftp подразумевать WebDAV.

Да, я знаю, что у sftp много всяких бонусов, но и минусы тоже можно найти. Всё зависит от задачи.
+1
Kaliha, 29 ноября 2012 в 22:49 #


Под redis я так понял необходимо переписывать код?
—6
homm, 29 ноября 2012 в 00:45 #
Какое ядро? Какой Апач? Какой eaccelerator? Какой FTP? Какой OGP?
Статья полный бред.
+4
fear86, 29 ноября 2012 в 00:48 #
Мне вот интересно почему apache а не например php-fpm? Так же можно было вспомнить про webmin, если уж статья для новичков. И да, зачем ядро я так и не понял )
+6
erazer, 29 ноября 2012 в 01:05 #
… и, конечно, ничего похожего автор в интернете не нашел, поэтому «решил поделиться своими наработками»…
0
xHellKern, 29 ноября 2012 в 10:20 #


Автор нашел в интернете много похожего, но оно было разбросано по разным статьям, что-то было уже не актуально для 12.04, где-то не было написано что phpmyadmin сам в apache2 свой алиас не прописывает и т. п.
+19
saharchuk, 29 ноября 2012 в 01:27 #
Обожаю chmod 777 —v —R *
Особенно когда copy-paste сделают, не вчитываясь, от «/»
Неужели так тяжело обучать работе в правами сразу? После таких мануалов десятки и приходится у горе пользователей систему восстанавливать.
0
GreenDay, 29 ноября 2012 в 14:30 #


Эх, помню грустную историю о том, как у нас разработчик убунту поломал, случайно сделав chmod 777 -R ./* находясь в /
0
Ernillew, 29 ноября 2012 в 22:39 #


Как-то, когда я был студентом ННГУ, у нас старший оператор находясь в / и думая что он находится в ~ сделал rm -rf ./*
Пока он понял что сделал, пока нажал Ctrl+C, пока это дошло до сервера…
он снес почти половину /home в котором жили больше 6k пользователей нашего инет-центра…
с той поры он был очень аккуратен.
0
Den_CH, 30 ноября 2012 в 09:28 #


Помню грустную историю, когда клиент с VPS сделал rm -rf ./* находясь в «/». На вопрос — нафига? ответил — «спросил на форуме, как вычистить файлы сессий в директории /var/tmp/где/то/там. Их тыщи были.»
Вот только про «cd /var/tmp/где/то/там» умолчали. Понятно, что скорее всего без злого умысла, но VPS была уничтожена.
+7
witdex, 29 ноября 2012 в 03:02 #
Ставим апач и ставим nginx… как это уже надоело ((
+8
DarthSim, 29 ноября 2012 в 06:22 #
Поставил убунту — напиши на Хабр. Эпидемия продолжается.
+8
qmax, 29 ноября 2012 в 09:18 #


Так он ещё и ядро из сорцов собрал!
Правда, не сказал — зачем.
+5
lybin, 29 ноября 2012 в 07:04 #
Вы все еще используете связку nginx + apache? — Тогда мы идем к вам!
—1
psman, 29 ноября 2012 в 10:34 #


Расскажите что не так? Просто обе стороны спора слушаю уже который год и внятных доводов однозначно определяющих ту или иную сторону ни кто не приводит. Особо упоротые php-fpm евангелизируют и не могут сказать «нафига он?».
+4
homm, 29 ноября 2012 в 10:38 #


Тут вопрос скорее нафиг Апач. php-fpm — простой прямой способ подключить php к серверу. Апач — отдельный монструозный сервер, который в данном случае используется только чтобы завести php.
0
psman, 29 ноября 2012 в 10:43 #


У апача есть пачка своих модулей облегчающих жизнь порой.
+1
homm, 29 ноября 2012 в 10:57 #


Давайте конкретнее. Много у чего есть что-то свое, порой облегчающее жизнь. Но вы хотите именно Апач.
0
psman, 29 ноября 2012 в 11:04 #


.htaccess

С учетом того что он может быть в любой папке и рулить редиректами, то при переносе сайта с одного движка на другой 301 сильно спасают положение.
0
homm, 29 ноября 2012 в 11:08 #


Непонятно, как вы хотите использовать .htaccess при переходе на другой движок, если .htaccess — это файл в реальной папке, а все адреса во всех движках уже давно виртуальные.
—2
psman, 29 ноября 2012 в 14:46 #


Не во всех движках, а уж тем более фреймворках.
0
lybin, 29 ноября 2012 в 11:22 (комментарий был изменён) #


Вам плюс конечно, для первого раза полезна статья.
Согласен с homm. php-fpm + nginx быстрее и менее ресурсоемкие, конечно все зависит от знания администратора, программиста и потребностей.
Можете загуглить для подробностей, обсуждений много и были уже до нас:
nginx php-fpm vs apache
0
psman, 29 ноября 2012 в 16:09 #


Обсуждения все на уровне «что лучше Мерседес или БМВ».
+7
qnub, 29 ноября 2012 в 07:12 #
Ещё раз прямым текстом, вдруг до автора дойдёт — не надо учить начинающих использовать Apache, а если сами без него не в состоянии что-то сделать — то и писать «умные» и «полезные» статьи тоже не сто́ит!
+4
IIIEB4YK, 29 ноября 2012 в 07:42 #
Спасаю пост. Сервера надо выбирать вот здесь: serverbear.com — есть бенчмарки, подбор по параметрам (память, тип и объём HDD, страна и т. д.), короче, это что-то вроде Яндекс.Маркета для серверов =)
+1
xHellKern, 29 ноября 2012 в 10:27 #


Плюс на этом ресурсе есть великое множество купонов на скидки. А вот по поводу бенчмарков — лучше брать тестовый период и теститровать самостоятельно ибо в зависимости от ноды, в которой крутится ваш VDS производительность может разительно меняться.
0
IIIEB4YK, 29 ноября 2012 в 10:44 (комментарий был изменён) #


Вообще да, но у них там, насколько я помню, усредняются данные нескольких тестов, если они есть (и отображается история изменений результатов тестов), поэтому в целом должно быть адекватно. Ну, и использоваться он может не только или даже не столько ради тестов, сколько ради удобного способа отфильтровать лишнее, и подобрать именно то, что нужно.
0
Newbilius, 29 ноября 2012 в 11:04 #


Один минус — нет русских серверов (игровые пинги если важны, например).
+1
IIIEB4YK, 29 ноября 2012 в 11:47 #


У них риальне отзывчивый саппорт, я как-то писал (не работала страница какая-то), попробуйте это обсудить с ними. Думаю, единственной проблемой может быть то, что многие российские хостеры не ориентированы на внешний рынок и потому не имеют англоязычной версии сайта.
+2
Newbilius, 29 ноября 2012 в 11:09 #


НО в любом случае, спасибо вам — крутейшая штукенция.
+1
ipdemon, 29 ноября 2012 в 19:36 #


К тому же там есть «горячий» раздел
0
KorP, 29 ноября 2012 в 09:53 #
Если нужно рулить пользователями Pure-FTPd, для этого есть удобная веб-морда
machiel.generaal.net/index.php?subject=user_manager_pureftpd
ставится за минуту, русский язык поддерживает.
+1
psman, 29 ноября 2012 в 10:31 #
Сразу НЕТ: <VirtualHost *:800> апач виден снаружи, это значит, что тот кто просканит порты сможет напрямую дергать картинки/видео/файлы через него, что создаст нагрузку на сервер = миниDDOS

Правильнее и кошернее делать

<VirtualHost 127.0.0.1:80>

соответственно в nginx

listen ipсервера:80; — вещает на тот же 80 порт, но на внешний ip
ну и не забыть про proxy_pass 127.0.0.1:80/;

В такой схеме «достать» апач минуя nginx невозможно.
0
homm, 29 ноября 2012 в 10:35 #


Завалить Апач в дефолтной конфигурации даже за nginx — нефиг делать. Так что это не влияет.
0
psman, 29 ноября 2012 в 10:45 #


Значит не надо в 100500-й раз дефолтные конфиги писать, на одном только Хабре подобных статей штук 20 + в песочнице стухло штабелями.
0
xHellKern, 29 ноября 2012 в 10:39 #


Наружу то апач виден, но вот это:

Order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0 ::1/128


будет огорчать миниDDoS'еров Forbidenn'ом, в моем случае во всем хостам, кроме host.name:800/phpmyadmin
+2
psman, 29 ноября 2012 в 10:44 #


Доп проверки на каждый запрос?? /irony «ок»
0
Kaliha, 29 ноября 2012 в 12:07 #


[Thu Nov 29 10:04:16 2012] [warn] VirtualHost 127.0.0.1:8080 overlaps with VirtualHost 127.0.0.1:8080, the first has precedence, perhaps you need a NameVirtualHost directive
Получаем по вашей инструкции. Ну и соответственно все работает криво.
0
4umak, 29 ноября 2012 в 12:47 #


> perhaps you need a NameVirtualHost directive

NameVirtualHost определите и будет всё в шоколаде.
0
Kaliha, 29 ноября 2012 в 12:53 #


Сработало, спасибо. Теперь по 8080 порту отдает 404, как редиректить на 80 порт?
0
4umak, 29 ноября 2012 в 16:54 #


Так _с_ 80 порта или _на_ 80 порт? Если первое, то стандартная схема nginx reverse proxy (если вы вообще об этом), либо через iptables prerouting
0
Kaliha, 29 ноября 2012 в 22:35 #


Nginx = 80, Apache = 8080, при обращении на 8080 порт дает 404 ошибку. Как редиректить все что приходит на 8080 порт в 80?
0
psman, 30 ноября 2012 в 00:34 #


А зачем апач на 8080.
Он у вас работает только на локалку? Если да, то на 80 порт локалхоста и вешать
А nginx принимает все с внешнего ip и шлет на 127.0.0.1:80 (апачу)
0
Kaliha, 30 ноября 2012 в 00:35 #


Просто есть некие пользователи, которые ходят напрямую на 8080 порт, понятия не имею откуда они его взяли. Может где то некорректно работал nginx.
+1
tamaki, 29 ноября 2012 в 10:43 #
Ну сколько можно?
+2
script88, 29 ноября 2012 в 11:14 #
1. Уже не раз писали, что eaccelerator загибается, юзайте php-apc.
2. Если увеличить параметр eaccelerator.shm_size с 16 до 128 то будет fail :)
+4
sledopit, 29 ноября 2012 в 12:21 #
1. Пересборка ядра. Я допускаю, что создатели дистрибутива полные лохи и ни фига не смыслят в сборке ядра под конкретно мой сервер, и у меня даже получилось собрать ядро, которое запускается (про производительность я благоразумно промолчу). Но твою ж дивизию, у меня 23 сервера и сегодня выпустили security patch, закрывающий получение рута при хитром обращении к ядру. Что мне делать?
2. прописывать путь к конфигу phpmyadmin в apache.conf — это вы, конечно, молодец. Но для этих целей изобрели /etc/apache2/conf.d/, куда можно кидать ссылки на конфиг.
3. Я не понимаю, зачем вы просите меня прописывать алиасы для /cgi-bin и /doc. Без них ничего не будет работать?
4. Для чего нужно прописывать репозиторий именно самого nginx'a, а не ставить из убунтовских репозиториев? Я слышал, что на сервере не стоит гнаться за самыми последними версиями ПО. Неужели врут?
5. Вы вроде вначале написали, что используете убунту. Как мне потому обновлять программы, которые вы предлагаете устанавливать make && make install'ом? Как-то на хабре был пост kekekeks'a, что каждый раз при таком способе установки бог убивает котёнка. Вы не боитесь, что после вашей статьи популяция котят сильно уменьшится? (:
6. Ещё я слышал, что ftp — небезопасно, гораздо лучше использовать sftp/scp. Неужели и тут меня обманули?
+1
xHellKern, 29 ноября 2012 в 13:34 #


Спасибо за аргументированную критику, учту ваши комментарии если буду переписывать свои наброски.
0
clslrns, 29 ноября 2012 в 13:09 #
А как же почту с этого сервера отправлять?
0
xHellKern, 29 ноября 2012 в 13:36 #


В моем случае не нужен был почтовый сервер т. к. я предпочитаю пользоваться Google Apps
0
clslrns, 29 ноября 2012 в 14:46 #


Настраиваете Postfix на использование SMTP Гугла? Или как?
—1
xHellKern, 29 ноября 2012 в 15:56 #


Нет, мой сервер вообще не шлет и не принимает почту.
0
qxfusion, 29 ноября 2012 в 13:50 #
Но самое главное — это создание снапшота для быстрого развертывания Вы не стали делать :)
+2
Ernillew, 29 ноября 2012 в 14:03 #
Говорят те кто выставляют phpMyAdmin в сеть голой дупой в следующей жизни рождаются виндовыми эникейщиками поддерживающими Oracle на FreeBSD через линукс-эмулять.
Впрочем те кто ставят апач не смотря на то, что он в их задаче явно не нужен тоже чем-то таким рождаются.
+1
pfa, 29 ноября 2012 в 15:10 #
Если часто переезжаете — почему бы для конфигурирования серверов не использовать Chef? Даже chef-solo (если нет ресурсов держать отдельную машину под шеф-сервер) сильно облегчит жизнь.
Каждый раз это все руками поднимать — это ж долбануться можно!
+5
VBart, 29 ноября 2012 в 15:26 #
gzip_comp_level 9; — это такой отличный способ убить производительность.
0
GreenDay, 30 ноября 2012 в 08:31 #


Не помню где встречал, там начинаю я с 5 левла компрессии толку мало, поэтому ставить больше 5 смысла нет.
0
IIIEB4YK, 30 ноября 2012 в 08:47 #


Я обычно ставлю 2.
4 — это последний уровень, который ещё туда-сюда в отношении времени к сжатию, уровни выше уже в этом смысле ведут себя очень плохо =) См. мой тест ниже — график Relative time to relative compress ratio это неплохо демонстрирует.
0
IIIEB4YK, 30 ноября 2012 в 08:37 #


Когда-то давным давно делал небольшой gzip бенчмарк. Есть огрехи в методологии: например, нет сравнения с чистым копированием файла — но общее представление даёт. Обратите внимание на листы с графиками (внизу), особенно отрезвляет Relative compress ratio, т. е. прирост степени сжатия по сравнению с предыдущим уровнем.
0
VBart, 30 ноября 2012 в 14:40 #


Ставить больше 1 (значение по-умолчанию в nginx) — смысла особого нет. Из ваших исследований видно, что уже даже на 2-ке проигрышь по производительности становится больше, чем выигрышь по степени сжатия.

То же самое и в тесте другого человека: webo.in/articles/habrahabr/33-gzip-level-tool/ — только графики не очень показательные из-за своих шкхал. Если присмотреться к шкалам, то можно заметить, что производительность сжатия падает много быстрее, чем растет эффективность (которая растет на единицы процентов).
+1
Claud, 29 ноября 2012 в 20:55 #
Лучше бы все в bash скрипты обернули и выложили на githube это был бы прорыв в статьях подобного типа.
+1
xHellKern, 29 ноября 2012 в 22:48 #


Отличная идея, надо будет заняться на досуге…
0
fortyseven, 1 декабря 2012 в 02:15 #


Если сделаете, отпишитесь, будем форкать =)
0
Taro, 3 декабря 2012 в 15:03 #
В очередной раз добавляю пост в избранное строго ради комментариев.
0
bezgubov, 12 декабря 2012 в 18:59 #
OpenVZ и XEN это не тип виртуализации
0
ekungurov, 14 декабря 2012 в 11:06 #

Возвращаясь к типам виртуализации на XEN и KVM оверселлинг практически невозможен технически.

Возможен — см. memory ballooning.

Теперь мы имеем достаточно шустрый веб-сервер, который потребляет меньше 100Мб оперативной памяти.

Вы используете апач с mpm-prefork'ом. Последний форкает по процессу на каждый обслуживаемый запрос. Каждый процесс будет занимать «меньше 100 Мб» виртуальной памяти. В сумме получится больше.

Конечно, форкнутые процессы должны использовать shared memory, и даже будут в случае Xen/KVM. Но не в случае OpenVZ, потому что OpenVZ очень специфически считает квоту памяти (имеются в виду user_beancounters).

Поэтому я бы рекомендовал ограничить количество апачевых worker'ов (при условии, что статика обслуживается nginx). А при использовании OpenVZ следует еще и уменьшить размер стека для апачевых процессов, поместив ulimit -s в скрипт запуска апача.

Оригинал: http://habrahabr.ru/post/160647/
Популярное