- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток!
Недавно взял VPS под один проект. Характеристики: 400 MB, 750 Mhz
Предустановлена конфигурация
Debian Linux 2.6.32-308.8.2.el5.028stab101.1 x86_64 GNU/Linux
Nginx мордой на статический контент, Apache в бекенде, Mysql
Сайт перенес, радуюсь хорошей скорости. Дальше перекинул сюда же одну статистику (база из нескольких таблиц, php скрипт API для записи и php для отображения суммарной информации) - 2 недели полет нормальный.
На днях количество запросов к статистике выросло в несколько раз, сервер начал задыхаться. Смотрю что за - вижу что апачи съели всю память. Пытался ограничить их количество как всегда делал когда без nginx - это ни к чему не приводило, их все равно пару десятков было. В конце концов отключил Keep-Alive.
Результат: все запросы к динамике стали дольше обрабатываться, статика чуть дольше. При пиках нагрузки на статистику (запись в БД) все равно все задыхается, статика отдается медленно, динамика никак. Теперь всегда есть 80-100 Мб свободной ОЗУ, но проблема видимо в БД:
mysql не успевает отрабатывать запросы, процессы php и apache ждут ответа от БД, соответственно свободных апачей нет и nginx тоже не отдает контент.
Запросов всего порядка 1000 в час к php статистики, к самому сайту 3000 уников в сутки.
mod_fcgid: read data timeout in 40 sec
Premature end of script headers: index.php
логи nginx
upstream timed out (110: connection timed out) while reading response header from upstream
connection reset by peer --||--
логи apache
mod_fcgid: process *** graceful kill fail, sending SIGKILL
Я так понимаю достаточно каким-то образом увеличить производительность MySQL и проблема уйдет, тогда и апачи в памяти висеть не будут. Таблицы MyIsam.
Что посоветуете?
Настройте кеширование
Я об этом писал подробную статью
Спасибо, но боюсь что не поможет.
1. Сайт берет 10% от всей нагрузки, скрипт статы - 90%. Даже если я закеширую сайт...
2. Стату кешировать никак нельзя, т.к. каждый запрос заканчивается записью строки в таблицу БД и возвратом некоторых данных запрашивающему.
Вообще странно что max_connections=100 закомментировано, т.е. не ограничено, апачей штук 15 всего без KeepAlive, т.е. одновременно обрабатывается с 2 десятка запросов, а база тормозит и не отвечает вовремя на половину.
Вообще странно что max_connections=100 закомментировано, т.е. не ограничено
Если не задано, значит mysql будет считать, что равно 150
Очень слабый конфиг VPS.
У меня та же стата + игровой сервер + еще всякая мелочевка висела на сервере от Eomy.net с 384 RAM+96 Swap, потом запустил 2й игровой сервер там же памяти перестало хватать (100-150 Мб на процесс) и апгрейдил тариф до 512+128 Мб. Там проц 2500 но при превыщении 800. Что можно выжать из P3-600 Мгц я сам знаю т.к. дома такой сервер был под виндой. К чему я это...
К тому что все работало нормально. Пики нагрузки были но это сказывалось только на скорости отдачи страниц, но они отдавались в разумное время. Apache в конфиге до 5 серверов с Keep-Alive + Mysql. Без nginx. Просто месяц назад у EOMY на серве слетел винт и пока решался вопрос с восстановлением данных пришлось перенести и уже думал насовсем.
на этом оффтоп заканчивается.
ОК, 150 коннектов. У меня все равно столько нет - вот скрин top'а во время ступора. 10 php, 11 apache. 10 одновременных подключений к БД...
Количество коннектов увеличивается - когда их кто-нибудь откроет, например сайт. Воспользуйтесь mysqltuner.
Лучше бы взяли себе хорошую впску, с оперативкой от 1гб+ и cpu 3000+
Чем ютиться на этой.
Лучше это когда проект будет приносить доходов на 2 таких VPSки. ЗА совет конечно спасибо, но мне интересно как выжать максимум из существующего железа. Хостер мне тоже предложил увеличить тариф, но это я всегда успею.
На крайняк у меня есть решение - плагин, который делает GET запрос к веб серверу, изменить на плагин, который будет делать тот же коннект на демон, и написать демон который будет принимать конненты по TCP на определенный порт и делать всю ту же работу включая общение с базой, таким образом освобождается куча памяти на апачи и из этой цепочки полностью выпадает пхп. Но это решение тоже упрется в какой-то невидимый лимит mysql сервера, так что пока это только идея. Все равно с MySQL надо что-то делать!
Лучше это когда проект будет приносить доходов на 2 таких VPSки. ЗА совет конечно спасибо, но мне интересно как выжать максимум из существующего железа. Хостер мне тоже предложил увеличить тариф, но это я всегда успею.
На крайняк у меня есть решение - плагин, который делает GET запрос к веб серверу, изменить на плагин, который будет делать тот же коннект на демон, и написать демон который будет принимать конненты по TCP на определенный порт и делать всю ту же работу включая общение с базой, таким образом освобождается куча памяти на апачи и из этой цепочки полностью выпадает пхп. Но это решение тоже упрется в какой-то невидимый лимит mysql сервера, так что пока это только идея. Все равно с MySQL надо что-то делать!
Поставить: mysql, nginx + php5-fpm
Настроить конфиги на минимальное потребление памяти.
это не дело, зачем нужен такой дохлый сервер под сайты (что бы угробить их?), если нет денег на нормальный сервер купите шаред за 100р он будет куда лучше во всех отношениях.
мне интересно как выжать максимум из существующего железа
1. Установить 32-битную ОС
2. Отказаться от apache в пользу php5-fpm
3. Оптимизировать запросы MySQL
4. Кэшировать
Спасибо, но боюсь что не поможет.
1. Сайт берет 10% от всей нагрузки, скрипт статы - 90%. Даже если я закеширую сайт...
2. Стату кешировать никак нельзя, т.к. каждый запрос заканчивается записью строки в таблицу БД и возвратом некоторых данных запрашивающему.
Так не используйте mysql для статистики - для этого есть мемкеш
А из него раз в час пакетным инсертом скидывайте в мискуль