Drupal и memcached

Последние два месяца я собирался прикрутить к Drupal кэширование на memcached. Останавливало меня то, что модуль Memcache был только для Drupal 5.x (у меня используется 6-я версия), а Cache Router был в разобранном неработающем состоянии. Доводить же до ума еще и это место не хотелось.

Как выяснилось, в течение ноября оба модуля были починены и сейчас выглядят полностью рабочими под Drupal 6.8. Правда производительность у них резко отличается:

  • Memcache не дал мне заметного прироста производительности, более ~50 запросов в секунду из него вытащить не удалось (а у меня с кэшированием родными средствами Drupal - ну чуть меньше).
  • Cache Router, наоборот, честно все кэширует и скорость работы из кэша - порядка 850-880 req/sec

Соответственно, поставил я CacheRouter, выглядит работающим.

Тестирование проводилось путем накатки суточного лога LibRaw.SU утилитой http_load. Считался, естественно, второй проход, подразумевалось что все разлеглось в кэши. Сервер: Dual Opteron 875, FreeBSD 6.4, Postgresql 8.3.5.

Comments

А пробовался ли модуль статического кеширования Boost? По идее оный способен поднять производительность работы с неавторизованными клиентами до совершенно фантастического уровня.

Статический кэш можно и проще сделать. А это еще и недоделаное:

case 'insert':
case 'update':
case 'delete':
// TODO: Expire all relevant taxonomy pages from the static page cache to prevent serving stale content.

А есть ли смысл в использовании memcached на одной машине? :-)

Да и вообще, к чему это все?

Ну подождите, раз мы подняли нагрузочную способность с 50 до 800, получается что смысл есть?

Смысл был бы, если бы в том была необходимость. Ждете digg/habr/radio-t эффекта? :-)

У меня на libraw.org периодически бывает dpreview-эффект, но и вообще - сайтов на машине много, страниц в сумме - сотни тысяч и когда на какой-то толстый сайт приходит робот гуглояндекса - остальные просаживаются. Отдавать их из памяти вместо диска - полезно.

Так ведь гуглобот придет один раз на каждую страницу и все, и поднимет все страницы в кэш. А зачем на это тратить память, если ни простым смертным, ни самому гуглоботу, ни тем более другим твоим сайтам (которым от того только теснее станет) легче не станет.

Я лично считаю, что главную страницу стоит кэшировать а остальное пожулуй не обязательно, для не очень нагруженых проектов. Разве что если комментов много, то их конечно неплохо бы в кэш класть но тут уже сложности начнутся с тем, как этот кэш протухать должен.

Я про обратную ситуацию - пока гуглобот шарицца по большому сайту - мелкие (и другие) сайты хочется отдавать из памяти, а не с диска.

User-agent: *
Disallow: /something
Crawl-delay: 1

спасет отца русской демократии:)
Роботы гуглояндекса будут как шелковые ходить не чаще раза в секунду, каждый. Проверено электроникой!

Это на один сайт и один робот не чаще раза в секунду.

А если их три десятка на машине, да на пяток поисковиков умножим, что получим?

Да, суммарно набегает, согласен.
Я только после того как написал посмотрел - у вас Crawl-delay уже стоит.

Кстати, не знаю с чем это может быть связано, но воследний коммент добавлялся секунд 15.

Да, и еще вопрос. Зачем нужна галочка "Запомнить персональные данные?" для залогиненого пользователя?

Антиспам работает и по DNS, это может быть долго.

Про вторую галочку никогда не задумывался :) - были такие темплейты в MT, добавил туда 'In reply' и успокоился.

Тогда это возможно и имеет смысл.