До 400000 запросов к бекэнду в сутки, так что от одной страницы от 3-5 до 50-70 запросов к базе.
Я не сомневаюсь, что прежние авторы проблем с производительностью myisam на тех объёмах данных и той посещаемости не испытывали. Самое досадное, что на старых серверах это работало без проблем, а всплыло жутким комшаром только после переезда, так что всем долго казалось, что у меня просто руки кривые.
Без этого довольно громоздкий пхп-код собирался заново для каждого запроса. С ускорителем всё остаётся в shared-памяти используется повторно до тех пор, пока не изменится исходный код.
Nginx берёт на себя статику и делает это, как все знают, очень хорошо. Про наш довольно лёгкий апач, который ничего кроме php-скриптов не крутит, против fastcgi я бы не стал сейчас спорить, да и это пока не актуально.
MySQL это наше всё :-) После переезда на новые срервера Каравана пришлось попотеть, проблем, думаю, мало кто не заметил. Всё вдруг взбударажилось и встало ребром.
До конца не помогло подключение новых тредов для FreeBSD 6.2 и оптимизация структуры базы и запросов к ней.
Видимо, помимо прочего, просто совпали моменты переезда и то время, когда myisam (да-да, все таблицы с начала жизни проекта до недавного времени были в myisam) стал не к месту для такого проекта. Кратковременное запирание таблиц приводило к гигантской очереди, которая просто не могла рассосаться.
Спокойствие настало тогда, когда в добавок к остальному посты и комментарии были переведены в InnoDB и был выделен двухгигабайтный буфер памяти. InnoDB в отличии от myisam умеет очень хорошо распоряжаться оперативной памятью: хранить там не только закешированную информацию но и целые индексы таблиц.
Я имел в виду, что это довольно злой сервер для текущей задачи. Он и без акселератора потянул бы нагрузку в разы больше этой. Просто захотелось чтобы он меньше ворочался, раз есть такая возможность.
С дисками я, пожалуй, неверный пример привёл. По iostat не удаётся уловить разницы, нужна большая нагрузка, в разы. Да и общий объём исходного кода маловат.
Не несёт-то не несёт, но в любом нормальном договоре нормального оператора строго сказано, что всякого рода нелегальной и нежелательной ботвой на предоставляемых ресурсах заниматься запрещено. Надо думать, это нужно для того, чтобы оставлять за собой право отстранить клиента от предосталвяемых услуг когда есть на то причины.
Отсутствие записи в reverse-зоне для ip-адреса почтового сервера — один из весомых критериев при принятии решения о том, является ли сообщение спамом или нет.
Соответствющий заголовок, добавленный в письмо антиспам-программой:
X-SpamTest-Info: {relay has no DNS name}
Прописать адрес в DNS может тот, на кого зарегистрирована подсеть. В болишинстве случаев надо просто обратиться к поставщику трафика.
Проверить зону можно просто: nslookup 123.123.123.213
Я не сомневаюсь, что прежние авторы проблем с производительностью myisam на тех объёмах данных и той посещаемости не испытывали. Самое досадное, что на старых серверах это работало без проблем, а всплыло жутким комшаром только после переезда, так что всем долго казалось, что у меня просто руки кривые.
За то видно, где предел myisam.
До конца не помогло подключение новых тредов для FreeBSD 6.2 и оптимизация структуры базы и запросов к ней.
Видимо, помимо прочего, просто совпали моменты переезда и то время, когда myisam (да-да, все таблицы с начала жизни проекта до недавного времени были в myisam) стал не к месту для такого проекта. Кратковременное запирание таблиц приводило к гигантской очереди, которая просто не могла рассосаться.
Спокойствие настало тогда, когда в добавок к остальному посты и комментарии были переведены в InnoDB и был выделен двухгигабайтный буфер памяти. InnoDB в отличии от myisam умеет очень хорошо распоряжаться оперативной памятью: хранить там не только закешированную информацию но и целые индексы таблиц.
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G
Про то, как сдесь применить AdoDB пока ничего сказать не могу: не пользовался. Пока довольствуемся стандарным кешем запросов MySQL.
С дисками я, пожалуй, неверный пример привёл. По iostat не удаётся уловить разницы, нужна большая нагрузка, в разы. Да и общий объём исходного кода маловат.
Memory Size 26,214,336 Bytes
Memory Available 3,672,832 Bytes
Memory Allocated 22,541,504 Bytes
Cached Scripts 359
А как падал? Умирали апачи/запускались другие?
X-SpamTest-Envelope-From: habrahabr@verter.futurico.ru
X-SpamTest-Group-ID: 00000000
X-SpamTest-Info: Profiles 1523 [September 28 2007]
X-SpamTest-Info: helo_type=3
X-SpamTest-Info: {TO: seems autogenerated}
X-SpamTest-Method: none
X-SpamTest-Rate: 10
X-SpamTest-Status: Not detected
X-SpamTest-Status-Extended: not_detected
X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release
Отсутствие записи в reverse-зоне для ip-адреса почтового сервера — один из весомых критериев при принятии решения о том, является ли сообщение спамом или нет.
Соответствющий заголовок, добавленный в письмо антиспам-программой:
X-SpamTest-Info: {relay has no DNS name}
Прописать адрес в DNS может тот, на кого зарегистрирована подсеть. В болишинстве случаев надо просто обратиться к поставщику трафика.
Проверить зону можно просто: nslookup 123.123.123.213