Возможно вы искали: 'Amazing Adventures: Th...'

May 15 2025 19:40:10
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Тюнинг nginx, mysql, php на VPS (nginx web tune vps mysql php )

Тюнинг nginx, mysql, php на VPS (nginx web tune vps mysql php )

Ключевые слова: nginx, web, tune, vps, mysql, php, (найти похожие документы)

From: EugeneVC <eugenevc@gmail.com.>
Newsgroups: email
Date: Mon, 7 Sep 2008 17:02:14 +0000 (UTC)
Subject: Тюнинг nginx, mysql, php на VPS


Введение

В настоящее время стало популярно вместо обычного хостинга, брать себе виртуальный сервер (VPS).
Дешево, по сравнению с настоящим сервером ( в 2-3 раза) и места много. Так мои друзья и поступили,
заказав себе VPS и отказались от обычного хостинга. Их ресурс был достаточно популярен, но к сожалению
часто был не доступен. Взяв VPS - они думали, что решили проблемы с надежностью - но не тут то было.
Так как у меня уже был опыт оптимизации таких серверов, они попросили меня посмотреть в чем причина тормозов.
Параметры VPS были такие 500 мГц CPU и 386M памяти, система Debian Etch 4. Веб сервер стоял на apache1.3,
в качестве базы данных использовалась mysql5.0.
Работал VPS на базе Virtuozzo.

По следам оптимизации - была написана эта статья. Статья расчитана на опытных вебмастеров.

Предварительная настройка

Шаг 1. Установка nginx

Пришлось похоронить apache и заменить его на nginx. Причины как обычно,
ускоренная отдача статики и меньшее потребление памяти. Статей на эту
тему в интернете полным-полно.

Нужные пакеты: nginx

Шаг 2. Перевод php в режим fastcgi

Нужные пакеты: php-cgi, lighttpd. Подробно тоже останавливатся не буду.

Шаг 3. Установка mysql последней версии

Ставим mysql5.1 одной из последних версий. Для debian он берется из backports.
Нужные пакеты: mysql5

Шаг 4.

Настраиваем все и заставляем работать. Я специально не стал
останавливаться на настройке nginx и mysql - они многократно были
описаны в интернете.


Запуск

На наш ресурс стали захаживать посетители и nginx встречал их любимой
ошибкой "502 Bad Gateway". Причиной отказа стал nginx, он не
мог открыть tcp сокет - о чем радостно вопил в логе.

Проблема 1. Ограниченное количество tcp сокетов

Набрав команду: cat /proc/user_beancounters мы видим

uid resource held maxheld barrier limit failcnt
342: kmemsize 6560447 7965730 8192000 9011200 0
lockedpages 0 0 64 64 0
privvmpages 32802 72065 65536 72090 140
shmpages 10371 10387 16384 16384 0
numtcpsock 120 62 250 250 56734
..cut..


что напротив параметра numtcpsock постоянно увеличивающуюся циферку в
последнем ряду - это отказы в доступных tcp сокетах. Нам не хватает
сокетов для работы - увеличить их количество нельзя, это обычно
ограничения хостера на создаваемые VPS.

Решение: на 1 соединение nginx приходится 1 tcp сокет? Как бы нитак,
ответ 3. Один себе забирает nginx, 1 mysql, 1 php. НО! Php и mysql
работаю локально - значит их можно переводить на unix сокеты.

Для этого для php в скрипте изменяем:

FCGIPORT="8888"


на

FCGIPORT="/var/run/spawn/fastcgi_socket"


далее

if test x$UID = x0; then
EX="$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILDREN"
else
EX="$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -C $PHP_FCGI_CHILDREN"
fi


на

if test x$UID = x0; then
EX="$SPAWNFCGI -s $FCGIPORT -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILDREN"
else
EX="$SPAWNFCGI -s $FCGIPORT -f $FCGIPROGRAM -C $PHP_FCGI_CHILDREN"
fi


Для mysql соединяемся из mysql_connect не с "localhost", a ":/var/run/mysqld/mysqld.sock".

Количество сокетов уменьшилось в системе - но его можно еще уменьшить -
уличная магия да и только. Набрав команду netstat -a - мы видим кучу
соединений и некоторые чего-то ждут. Для того что бы ждали поменьше -
выставляем в конфиге nginx параметр:

keepalive_timeout 0;


Он означает, что отдав вебсервер отдав контент - закроет соединение, а
не будет висеть и ждать 60 секунд - занимая сокет.

Ура ресурсу полегчало, но не радовала маленькая скорость загрузки
страниц. На этот раз стало понятно, что mysql выжирает кучу процессора
и параметр iowait высок.

Проблема 2: Маленькая скорость mysql.

Я не большой спец тюнингу по mysql, решил воспользоваться
рекомендациями гуру написавшими данный скрипт. Скрипт смотрит
статистику по работающему mysql ( желательно, что бы он проработал
более 48 часов) подсказывает, что у вас не так. Мне пришлось править
следующие параметры в my.cnf

max_connections = 15; // количество одновременных соединений - на VPS
// не много памяти, а mysql выделяет на каждое соеденение кучу памяти
key_buffer = 30M; // mysql по подсказкам [14]скрипта использует всего 22M
table_cache = 256; //количество одновременно открытых таблиц + кучку обычных настроек
skip-innodb; // трекер использует только myisam таблицы отключить все логи - что бы диск не был занят


Проблема 3. Уменьшение занимаемой памяти.

Установка eAccelerator для php. Данный модуль компит php в байт код
ускоряя его работу и уменьшая занимаемую память. Самое главное тут, что
бы все скомпиленые php файлы умещались в shared memory. Для диагностики
выполните файлик test.php:

Ищем следующие строки:

Memory Size 33,554,396 Bytes
Memory Available 19,280,056 Bytes
Memory Allocated 14,274,340 Bytes


Если Memory Available будет близко к нулю - для этого мы должны ее
увеличить, иначе все будет кешироватся на диск. Для этого под рутом
выполняем

echo 134217728 >/proc/sys/kernel/shmall #выделяем 128M
echo 134217728 >/proc/sys/kernel/shmmax


в /etc/sysctl.conf добавляем:
kernel.shmall = 134217728
kernel.shmmax = 134217728

и перезагружаем nginx в VPS.

В результате этой не большой настройки трекер обслуживая порядка 50
пользователей одновременно онлайн - по top занимает всего 200 M памяти
и средней нагрузке 2.0.

PS: дальнейшая оптимизация упирается только в CPU и требует более
мощной тачки. Некоторые команды могу у вас не пойти, я так и не понял
как создать swap на VPS ( при создании пишет, что в доступе отказано).
613 Прочтений •  [Тюнинг nginx, mysql, php на VPS (nginx web tune vps mysql php )] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Тюнинг nginx, mysql, php на VPS (ng... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка