2 способа ускорить работу WordPress

Для того, чтобы выдать страничку блога, WordPress обращается к базе данных примерно от 10 до 100 раз. Эти обращения могут заметно замедлять работу блога, особенно если сервер баз данных находится не на том же компьютере, что и веб-сервер.

Есть плагины (super-cash, hyper-cash), которые в момент запроса страницы создают статический html-файл, который при следующих обращениях к той же странице будет выдаваться вместо того, чтобы формировать её заново. Но у них есть несколько недостатков.

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

Но не очень давно появился ещё один плагин — WP File Cash, созданный Владимиром Колесниковым — который действует по другому принципу: он сохраняет в обычных файлах не конечную страницу, а результаты запросов к базе данных, и когда эти данные требуются в следующий раз, то WordPress сначала проверяет, извлекались ли они раньше, и обращается за ними к базе данных, только если их нет в кэше, причём это работает как на внешних страницах, так и в админке.

Я опробовал этот плагин на нескольких блогах; оказалось, что он экономит примерно 50 — 70% запросов (причём пробовал модифицировать плагин под WPMU, у которого свои сложности, а на обычном WordPress экономия должна быть ещё больше, так что теперь хочу поставить плагин нескольким своим клиентам). Так как среди клиентов есть украиноязычные, я сделал украинский перевод к этому плагину.

В блоге у Владимира я нашёл ещё одну возможность улучшения производительности — перевод WordPress при помощи встроенных средств PHP. На моих блогах это экономит 4 — 4,5 мегабайт оперативной памяти. Если у вас нагруженный сервер, такая экономия может здорово пригодиться. Но для того, чтобы её использовать, придётся модифицировать несколько файлов WordPress, а также необходимы права суперпользователя сервера.

Замеч. 4.10.2010. При обновлении файлов перевода может потребоваться перезапуск вебсервера.