Хабраэффект

Итак, на днях один из блогов на нашем сервере испытал так называемый хабраэффект.

Хабраэффект (на Западе это называют «слэшдот-эффект») — это резкий всплеск посещаемости сайта за счет того, что ссылку на него дали на очень популярном и посещаемом ресурсе. В нашем случае хабраэффект постиг нас в самом буквальном смысле: несколько ссылок на сайт появилось в нескольких блогах на «Хабрахабре».

Основная проблема, с которой сталкиваются жертвы хабраэффекта, вызывается не тем, что возрастает собственно посещаемость, а тем, что огромное число посетителей пытается зайти на сайт одновременно или почти одновременно. И если серверное оборудование слабое или серверный софт недостаточно грамотно настроен, сайт может начать ужасно тормозить, а сервак может вообще подвиснуть (и вернуться к жизни только после перезагрузки).

Строго говоря, явление типичное, так что к падениям сайтов под хабраэффектами многие относятся как к чему-то само собой разумеющемуся.

Так вот, несмотря на то, что у нас простой, маленький и недорогой виртуальный сервер, и несмотря на то, что большая часть МНОГОТЫСЯЧНОЙ «волны» прошла в узкий промежуток времени между 14-ю и 15-ю часами, мы выстояли и не упали.

Более того, очевидцы утверждают, что сайт лишь слегка подтормаживал. Да и то не у всех.

А меж тем наш народ так активно ругает «Вордпресс» (дескать, тяжелый и тормозной) и технологию виртуализации openvz (говно, а не технология)! А по-моему, ручки им надо выпрямить, вот и всё.

P.S. Надо бы о настройках веб-сервера написать, чисто для себя, как памятку.

Починил RSS и трансляцию в «Твиттер»

Заодно приношу извинения всем подписчикам блога. Теперь все должно работать.

* * *

Вообще стоит это отпечатать золотыми буквами, вставить в рамочку и повесить на стенку — не всякие «улучшения» для сайта, сервера или блога нужно внедрять сломя голову.

Например, попробовал «ускорить» работу веб-сервера nginx — и не смог залогиниться в собственном же блоге (хорошо еще, что я только для своего сайта применил эту штуку для начала).

Или добавил короткий код в файл функций темы оформления блога — и ага, перестала работать трансляция.

Впрочем, вордпрессеры этим часто грешат: только прочитают где-нибудь про очередной кэширующий или ускоряющий плагин — и ага его устанавливать. Сначала радуются тому, как все шустро работает, а потом начинают искать новый хостинг, потому что со старого их прогнали за перегрузки.

* * *

А еще на днях наш крошка виртуальный сервер испытал на себе хабраэффект. Но об этом — в следующем посте, утром.

WordPress 2.8.2: где ты, былая легкость?.

Все побежали — и я побежал.

(«Джентельмены удачи»)

Поставил на тестовом сайте обновленный WordPress 2.8.2. Много о нем читал, так что ничего нового формально не узнал, однако лучше один раз увидеть.

1. При установке и апгрейде старой базы тестового сайта выкушал всю имеющуюся на сервере память. То есть, ее свободной было немного (меньше 100 кило), но  шутка в том, что ранее на нее никто не покушался, даже при очень сильных нагрузках и появлении на сервере новых сайтов.

К счастью, нынешняя конфигурация сервера дает возможность полноценно работать всем сайтам и серверному софту даже при нулевом объеме свободной памяти (хотя я не проверял, долго ли). Радикальное решение отказаться от «Апача» в пользу nginx было правильным.

2. Раньше я уже пробовал установить/настроить 2.8.2, но ограничения в 25 мегабайт на скрипт явно не хватало для нормальной работы. По слухам, 32-х некоторым тоже не хватало. Сейчас у меня стоит 35.

3. Админка стала чуть удобнее, хотя внешний вид остался почти неизменным. Страница настройки виджетов более продуманная, встроенный редактор тем, кажется, перестал глючить в Chrome. Насчет страницы плагинов я ничего хорошего, правда, пока не могу сказать — прежняя мне нравилась больше.

Поговаривают, что админка работает в целом шустрее, но я особой разницы не вижу: во-первых, сервер у меня оптимизирован под WordPress, а во-вторых, я использую Google Gears, который хранит локально около 250-ти файлов, необходимых для работы админки. Upd. В новой версии —  166.

Upd2. Посравнивал скорость, загружая разные страницы админки. На моем сервере старая версия с большой базой и Gears визуально работает быстрее новой с пустой базой и Gears.

В общем, я бы не советовал апгрейдиться тем, кто доволен версией 2.7.1, а главное — категорически не советовал бы делать это тем, кто пользуется виртуальным хостингом: за новый уровень нагрузок вас провайдер по головке не погладит.

Хотя юзабилити, по идее, стоит того, чтобы ради него отказаться от плохого хостинга. Не будем забывать и о том, что обнаруженные в старых версиях уязвимости никто закрывать уже не будет.

Из «ЖЖ» на WordPress или «На волю, всех на волю!»

Пока «Жежешечка» билась в падучей, я слегка перенастроил сервер со своими многочисленными блогами на WordPress.  Если вкратце — в результате сайты, к которым пользователи обращаются чаще, будут работать чуть быстрее.

Пока подбирал настройки, много думал о том, почему люди так привязываются к «ЖЖ» и другим подобным сервисам, ведь в случае DDoS-атаки или каких-либо сбоев становятся недоступны для чтения все дневники всех пользователей. Больше того, они становятся недоступны  и для поисковых систем, и для самих авторов.

В случае взлома наверняка злоумышленник сотрет все содержимое дневника, и оно будет в той или иной степени утрачено. А  на том же WordPress  это практически невозможно. То есть, взломать можно, стереть можно. Но полная утрата маловероятна — хотя бы из-за наличия функции автосохранения резервных копий.

В общем, с какой стороны ни посмотри, гораздо практичнее иметь отдельный блог на отдельном хостинге, нежели в большой засранной «коммуналке». При этом никто не запрещает транслировать из личного блога в «коммуналку». И переносить старые любимые записи (а при желании — и комментарии) из «коммуналки» в личный «особняк».

В случае DDoS-атак или взлома станет недоступен только один блог (а не миллионы). Читать их можно все равно единой лентой — через RSS-агрегаторы (Google Reader, Яндекс.Лента и так далее). А комментировать можно без всяких регистраций, в том числе, благодаря такой вещи как OpenID.

P.S. Кстати, желающие иметь персональный блог за символические деньги могут обращаться. Если хорошо попросите — могу организовать и бесплатно (не всем, только знакомым или барышням с большим бюстом).

WordPress, Missed Schedule и др

Ради эксперимента обновил WordPress до версии 2.8. По традиции, в кактусовой версии.

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

Утверждают, что админка стала легче работать — это очень даже возможно. Но мне показалось, что после апгрейда на сервере сразу же осталось меньше свободной памяти и к прежнему уровню за прошедшие дни оно так и не вернулось.  Хотя утверждать, что дело именно в новой версии я не буду, но и обновлять остальные сайты тоже не буду. Тем более, что у меня сервер неплохо «заточен» под WordPress и админки и без того просто летают, а потому разницы между «до» и «после» я не заметил.

Между тем, случайно узнал, что с момента переезда на новый сервер перестал работать отложенный постинг (что в 2.8, что в более ранних версиях). Выглядит это так: штуковина, в принципе, работает, ведет обратный отсчет... А в нужное время ни хрена не публикует и пишет в соответствующем поле в админке «Ну не шмогла я, не шмогла» (Missed Schedule).

Сначала поморщился: ну вот, опять копаться в конфигурации сервера, а там все так неплохо вроде бы... А потом почитал, что пишут в Интернетах, и оказалось, что это известный баг, причем, если у вас два сайта на одной площадке, то на одном сайте все может работать  нормально, а на другом может глючить.  Как выяснилось, публикация отложенных записей в WordPress сделана немного через жопу (подробности, по-английски). К счастью, есть плагин для обхода этого маразма: 5upport WordPress Plugin.

LJ-Crossposter, который я использовал раньше, тоже был связан с тем же глючным куском кода, что препятствовало его нормальной работе с вышеуказанным плагином. Так что ему на замену был поставлен JournalPress, прошу любить и жаловать.

Этот пост был опубликован с использованием отложенного постинга.

UPD. После обновления на «окончательный» вариант кактусового 2.8 пришлось откатиться на 2.7.1. Может быть, что-то где-то недообновилось или недокачалось, однако даже админка не работала и отображалась только частично. Нет времени и желания разбираться, но, возможно, следовало залезть в настройки сервера и увеличить лимит памяти для скриптов — а оно мне надо?

UPD2. Ага. Вот тут в комментариях тоже пишут, что 2.8 памяти стал кушать больше. Зато, якобы, быстрее. Извините: я лучше серверную и клиентскую часть оптимизирую.  Вернее, уже.

UPD3. Пишут, что скоро выйдет 2.8.1, менее прожорливый до памяти.