poiuty

Рейтинг
144
Регистрация
16.03.2009
ware:
Почему только 2.6.32? Там раньше не было возможности нормально выделять процессор, только "по приоритетам"

В ядрах OpenVZ на RHEL 6 (это 2.6.32) достаточно много нового функционала.

Память для контейнера теперь устанавливается по 2 параметрам, например 2G RAM и 1G Swap

PHYSPAGES="0:2048M"
SWAPPAGES="0:1024M"

Теперь не нужно высчитывать множество разных параметров, как было раньше на ядрах ovz RHEL5. Теперь нет проблемы "cannot allow memory".

CPU можно ограничить как по приоритету

CPUUNITS="300"

так и в процентах от ядра/ потока, например доступно от 2 ядер/ потоков - 150% (одно ядро = 100%)

CPULIMIT="150"
CPUS="2"

Подробнее про CPU лимиты.

Начиная с kernel 042stab068.8 появилась возможность ограничивать использование контейнерами дискового кэша.

Появился ploop. http://wiki.openvz.org/Ploop -> VPS = отдельная FS. Не нужно дополнительно ограничивать кол-во innods и quota users.

Бекап (не выключая впску) можно делать без lvm -> с помощью ploop-snapshot

---------- Добавлено 07.09.2013 в 18:06 ----------

foxi:
Забудьте о этой недовиртуализации. И о недохостерах фирст и фаст вдс.
Берите xen или kvm, будет стабильнее и надежнее.

foxi, готов сделать вам тестовую VPS на OpenVZ ;) А потом обсудим - что вас не устраивает в OpenVZ VPS.

extra,

в OpenVZ есть свои фишки по оптимальному потреблению памяти, так как там не полная изоляция и есть возможность кэшировать идентичные процессы

pfcache есть в ядре ovz, но нет в vzctl. На данный момент - эта фитча работает только на virtuozzo. Но в будущем, так же будет доступна и на ovz.

p.s. ну и еще совсем ламерский совет: google.com -> сравнение производительности xen и openvz -> и читайте, прокачивайте свои знания.

У ovz - минимальный оверхед по cpu и ram.

solomko,

Конфиг VPSки достаточно слабый. Например fastvps предлагает

4x2 GHz CPU Cores (Intel® Xeon® E5-2620), 50 GB HDD SAS, 16 GB RAM - всего за 42.05$

OpenVZ VPS рекомендую брать только на ядрах (2.6.32 base RHEL6), проверить можно так

uname -r
2.6.32-042stab079.6

А так же только у тех хостеров, которые действительно разбираются в OpenVZ. Например fastvps и ihc.

все 5 ипов - кф.

настройте nginx

http {
#CF IPV4
set_real_ip_from 204.93.240.0/24;
set_real_ip_from 204.93.177.0/24;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15

#CF IPV6
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:8100::/ 32

real_ip_header CF-Connecting-IP;

https://ru.cloudflare.com/ips

Romka_Kharkov:
А что если добавить в огонь вот такое:

Просто забираю Header через Curl.

Стало быть PHP не при делах? Или таки при делах? :)

В нормальном случае получаю такой ответ:

А в этот раз получил описанный выше "HTTP/1.1 504 Gateway Time-out" на стороне курла. При этом , проверялка трогает сайт с двух разных мест, в одно и то же время одна ошибка (интервал 1 минута).

Проблема со стороны fcgi. Думаю, мало процессов fcgi.

Можно воспроизвести -> сделать 1 процесс fcgi (без дочерних), запустить скрипт (который будет долго что-то выполнять) и вызвать его несколько раз -> получите 502.

Сделайте больше fcgi процессов и проверьте (например 256~512 на тест)

---------- Добавлено 06.09.2013 в 12:18 ----------

Logger:
сделайте отдельный локейшен для статики

Оно без apache, nginx так и так отдает статику и все остальное, кроме php

nginx выдает 502 по своему таймауту, если не получил ответ.

В php5-fpm можно сделать dynamic

http://php.net/manual/ru/install.fpm.configuration.php

pm string
Выбор того, как менеджер процессов будет контролировать создание дочерних процессов. Возможные значения: static, ondemand, dynamic. Этот параметр является обязательным.

static - фиксированное число дочерних процессов (pm.max_children).

ondemand - число процессов, порождающихся по требованию (когда появляются запросы, в отличии от опции dynamic, когда стартует определенное количество процессов, равное pm.start_servers, вместе с запуском службы.

dynamic - динамически изменяющееся число дочерних процессов, задается на основании следующих директив: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.



---------- Добавлено 05.09.2013 в 23:44 ----------

max_execution_time = 120

это в любом случае дофига, юзер будет ждать 2 минуты?

Вы уверены, что 502 выдает по fastcgi_read_timeout, то есть через 240 секунд? Пользователи подтвердили, что ждали 4 минуты?

fastcgi_connect_timeout

Задаёт таймаут для установления соединения с FastCGI-сервером. Необходимо иметь в виду, что этот таймаут обычно не может превышать 75 секунд.

fastcgi_read_timeout

Задаёт таймаут при чтении ответа FastCGI-сервера. Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени FastCGI-сервер ничего не передаст, соединение закрывается.

fastcgi_send_timeout

Задаёт таймаут при передаче запроса FastCGI-серверу. Таймаут устанавливается не на всю передачу запроса, а только между двумя операциями записи. Если по истечении этого времени FastCGI-сервер не примет новых данных, соединение закрывается.

Увеличьте все 3 параметра. Сделайте больше fcgi процессов. Если стоят кешеры (apc, xcache) - отключите их на время.

Попробуйте увеличить количество процессов fcgi.

А так же заюзать php5-fpm, там есть динамический режим.

---------- Добавлено 05.09.2013 в 23:26 ----------

Romka_Kharkov:

Я полагаю, что если бы были в PHP Какие-то таймауты, то об этом было бы известно в php error log ?

Да, но если например таймаут на выполнение скрипта 60с для пхп, а для nginx - меньше, то php не запишет ошибку в лог -> если скрипт уложился в отведенное время. Можно сделать небольшой таймаут для php скриптов и посмотреть какие умирают по таймауту.

Статика же отдается nginx, в этом случае 502 не может быть на статику.

Может быть скрипт обрабатывает больше N времени. И nginx не получив ответ - развешает по таймауту с 502. Думаю стоит - найти закономерность, воспроизвести, отдебажить

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/*******.ru/$fastcgi_script_name;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
include fastcgi_params;
}

Зачем gzip_comp_level 9; -> достаточно 5~6

worker_connections 1024; -> я бы увеличил хотя бы до 2048, и по stat nginx -> смотрел, сколько юзают и не нужно ли увеличить еще.

keepalive_timeout 60s; -> думаю достаточно 20-30s

fcgi лучше перевести на сокет.

ais9:
да vds надо чтобы был на обслуживании у хостера, ничего в нём не знаю и некогда учить мат. часть, мне достаточно панели для администрирования сайтов и иногда тикеты писать
ресурсы не знаю какие нужны, посещалка 2-4к со всех сайтов выходит
unlim траф

Какой двиг сайта? Сколько gb hdd нужно?

Может быть стоит посмотреть в сторону VIP хостинга, там уже все настроено.

Хостерам можно писать предложения в теме?

Всего: 1077