Секреты высокого трафика WordPress блоги

Мы все знаем, что WordPress является удивительным, — но быть удивительным не всегда достаточно. Хорошо ли он работает под давлением? Может ли он справиться с трафиком от миллионов посетителей каждый месяц? Там нет сомнений в том, что WordPress может быть использован для вашего или моего блога, но как насчет нескольких автор блогов с тысячами комментариев? Как разработчики делают его масштабирование милиемым и выполнением?

Я говорил с разработчиками за некоторые из крупнейших Блоги WordPress на планете и попросил их рассказать мне свои секреты. Теперь я могу поделиться ими с вами.

Блоги

Сайт Ежемесячные уникальные Ежемесячные просмотры страниц
Цифровые тенденции от 10 до 12 миллионов 33 миллиона
iPhoneclub.nl 2,5 миллиона 5,4 миллиона
Следующая паутина 4 миллиона 8 миллионов
Неаторама 2,5 миллиона 4,5 миллиона
Слэшгир 6 миллионов 10 миллионов
Горячий воздух от 2 до 3 миллионов от 35 до 45 миллионов
Смеющийся кальмар Нераскрытой Нераскрытой

В начале

Первое, что я спросил разработчиков было ли они готовы к интенсивному трафику, который в настоящее время течет через их веб-сайт. Почти во всех случаях ответ был оглушительным «нет». Из The Next Web, главный ток Арьен Шат и ведущий разработчик Пабло Роман сказал, что они планировали для роста, но не ожидают роста произойдет в таких больших масштабах. «Было несколько крупных сайтов WordPress в то время, так что мы узнали, как мы пошли вместе».

Дальнейшее чтение на SmashingMag:

Neatorama начал в конце 2005 года на дешевых общих хостинг, пока он не получил выгнали. Он переехал в VPS и получил выгнали снова. В 2007 году он перешел на выделенный сервер с CDN, который в конечном итоге был недостаточным, пока, наконец, он переехал на сбалансированные нагрузкой серверы с CDN. Подобные истории перекликаются с iPhoneClub.nl и Смеющийся кальмар.

Разработчик Hot Air, Марк Джаквит, также ведущий разработчик WordPress, был вынужден перенести веб-сайт на новый сервер в течение 48 часов после запуска. Только SlashGear планирует увеличение трафика на 30% в год.

Digital Trends

Цифровые тенденции начали с около миллиона уникальных в месяц и с тех пор вырос до 10 до 12 миллионов уникальных. Том Уиллмот, из Human Made, развитие магазина за цифровые тенденции, сказал, что это, начиная:

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

Сервер измельчить и сжигать

Высоким трафиком блоги приходится иметь дело с вещами, которые регулярные блоггеры только мечтать: нагрузок и нагрузок посетителей, стремятся прочитать все последние новости. Neatorama провел, когда он был показан на первой странице Digg, но был измельчен в течение нескольких минут после того, как размещенные на главной странице Yahoo — более 2 миллионов посещений в течение нескольких часов. Чтобы справиться с этим, он должен был сделать статическую страницу на CDN и перенаправить трафик там.

Другие блоги сталкиваются с проблемами, связанными с крупными событиями. Посетители стекаются на свои веб-сайты, чтобы следить за тем, что происходит, и слышать новости. iPhoneClub.nl и SlashGear особенно страдают во время прямых трансляций Apple. SlashGear испытывает трафик более 4 миллионов уникальных в течение двух часов продолжительности трансляции; для того чтобы справиться с этим, оно добавляет Амазонку EC2 к своей нормальной инфраструктуре.

iPhoneclub.nl

Jean-Paul Horn, чья iPhoneclub.nl началась на WordPress 2.0.5, пришлось научиться справляться с этими проблемами на лету:

Мы использовали для запуска стандартного стека LAMP с WP Super-Cache, так как сайт уже быстро растет, когда iPhone начал получать очень популярны. Наша главная проблема состояла в том, что сервер работал прекрасно в обычные дни новостей, но почти буквально горел всякий раз, когда Apple была основной или другой большой iPhone связанных объявление. Мы пытались подготовиться к этим коротким лавин, временно добавив больше ядер и оперативной памяти, но это никогда не было достаточно, и я не был действительно заинтересован в инвестировании в большой осла сервера только в течение двух-трех дней безумных объемов веб-трафика в год.

Переход на веб-сервер и сервер баз данных с MyS’L, хранящимся на отдельном сервере, помог в его постоянном росте, он по-прежнему имел дело с теми же проблемами, когда Apple провела пресс-конференцию. Введите Фредерик Таунс из W3 Всего Кэш и Mashable славы. Джин-Поль познакомился с Фредериком в WordCamp Нидерланды, и Фредерик пошел дальше, чтобы помочь им создать свою нынешнюю конфигурацию:

  • Сервер приложения размещает переднюю часть Varnish.
  • Они используют два веб-сервера nginx: один с PHP-FPM, другой со статическим содержанием, как CDN.
  • Сервер базы данных работает с высоко настроенным сервером MyS’L, в котором некоторые из таблиц WordPress, такие wp_posts как, были преобразованы из MyISAM в InnoDB. Поскольку InnoDEV не имеет полного поиска текста, поиск Sphinx был реализован.
  • Анализ производительности был проведен с использованием файлов cachegrind, которые генерирует xdebug, чтобы легко определить возможности оптимизации времени выполнения, которые мешают серверам работать в прохладном состоянии и быстро устрашать промахи кэша.

Jean-Paul использует эту конфигурацию с ноября 2011 года и пережил два крупных события Apple без каких-либо предыдущих проблем нагрузки или других проблем с производительностью. Они также были в состоянии разместить больше трафика и избили все свои предыдущие рекорды трафика.

Работа с ростом

Горячий воздух

Hot Air

Американский политический блог Hot Air прошел через некоторые основные показатели и масштабирование спринт, особенно в преддверии выборов в США лет. Выборы гарантируют больший, чем в среднем, шквал активности вокруг политики. Учитывая, что политика уже является одной из самых популярных тем в Интернете, это означает некоторое хардкор масштабирование. Марк Jaquith объяснил мне шаги, которые он принял, чтобы справиться с масштабированием:

  • Доставка всех статических активов через CDN.
  • Настройка балансоилира нагрузки, с несколькими web-задними концами позади него.
  • Кэш на первой странице упреждающе
  • Фрагменты страницы кэша (например, боковые панели) упреждающе, чтобы их можно было загрузить статично.
  • Кэш последние сообщения упреждающе (в основном те, отображаются на главной странице). Каждый раз, когда публикация обновляется или комментарий остается, обратный процесс генерирует новый статический снимок страницы и распространяет его на веб-машины.
  • Устранить дифференциацию кэша между ввоженные и анонимные зрители. Большинство плагинов кэширования не кэшируют страницы для пользователей, зарегистрированных в журнале, или, если они делают, они кэшируют другую версию для каждого зрителя. Шаблоны Hot Air модифицируются таким образом, чтобы не было разницы в HTML, генерируемом для зарегистрированных и анонимных пользователей, поэтому может быть один общий пул кэша.
  • Используйте Batcache (с задней частью кэша Memcached object) для кэша представлений старого содержимого.

Следующая паутина

The Next Web

Как и в большинстве из этих других блогов, масштабирование было вынуждено на следующий веб. Основатели действительно планировали рост, но не в том масштабе, с которыми они столкнулись. Арьен и Пабло подробно рассказали о том, как они с этим справляются.

Основными инструментами команды являются:

  • Лак как обратный прокси и для ESI (Edge Side Includes);
  • Memcached для хранения результатов тяжелых запросов, таких как популярные истории;
  • Мунин для мониторинга.

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

  • Используйте журнал медленных запросов MyS’L с no-index включенным. Сохранение ваших медленных журналов MyS’L является необходимым условием. Ваш кэш ключа может быть уже недостаточно, если ваши данные растут.
  • Используйте XHprof для анализа путей кода.
  • Держите журналы Apache чистыми.. Внешние рефереры будут ссылаться на страницы на вашем сайте, которые больше не существуют. Если страница WordPress 404 загружается каждый раз, то вы делаете работу, которую можно избежать. Создание 404 страницы может быть тяжелым, поэтому он должен быть кэшируемым в varnish, а также.

Команда The Next Web также использует дополнительные инструменты с varnish для улучшения скорости попадания кэша. К ним относятся:

  • varnishtopПозволяет заглянуть в лак.
  • varnishtop -i txurlЭто показывает вам все запросы, которые превращают его в Apache, которые не кэшированы Varnish. Это поможет вам определить различные случаи:
    • Отправляет ли задняя часть заголовок, который Лакней не может кэшировать;
    • Запускает ли задняя часть сеанс, который не нужен;
    • Частично пороки связей с вашим сайтом, такие как http://thenextweb.com/apple/http://referrer.com/my/cool/article ;
    • Небольшие вариации нормального запроса, который можно нормализовать в varnish, так что вы можете служить стандартной странице, http://thenextweb.com/correct/article/link?utm=campaign например.
  • [WP-VCL](https://github.com/thenextweb/wp-vcl)Их основной VCL, который нормализует много различных запросов в стандартных версиях.

Важным шагом для The Next Web стала разработка возможности обслуживать кэшированное содержимое для пользователей, зарегистрированных в журнале. Для этого он втягивает во все пользовательские части страницы и загружает их через вызов AJAX. Это означает, что содержание не нужно загружать все WordPress. Разработчики дублировали весь код, который необходим для обработки входа в систему и основные пользовательские вещи профиля в WordPress в свой собственный крошечный класс входа. Класс занимает 1 миллисекунду для загрузки, вместо 100 до 200 миллисекунд для загрузки через весь стек WordPress. Это предотвращает WordPress от загрузки для тривиального запроса, который может ухудшить общую производительность вашего сайта, поедая циклы процессора, которые должны быть использованы для визуализации страниц, которые не кэшируются. Дополнительным преимуществом является то, что WordPress может отображать все страницы в режиме незарегистрированной.

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

Основные плагины

Основные инструменты и услуги

  • VaultPress: Горячий воздух в режиме реального времени резервного копирования.
  • WordPress.com статистика: Горячий воздух
  • Google Analytics: Горячий воздух
  • Chartbeat и Newsbeat: Горячий воздух
  • CDN: каждый
  • SoftLayer: Slashgear Специализированная хостинговая компания, с которой Slashgear работает уже семь лет.
  • Cloudflare: Смеющийся кальмар обеспечивает веб-службы производительности и масштабируемости.
  • Disqus: Slashgear помогает социализировать взаимодействие и компенсировать загрузку комментариев со своих серверов.
  • Solr: Следующий веб для поиска.

Проблемы

Высокие уровни кэшинга

Все владельцы блога я говорил с имеют высокий уровень кэширования. Digital Trends занимается этим с помощью Akamai Distributed, Varnish и Memcached. Когда это сочетается с входами пользователей и регистрациями, может быть трудно убедиться, что каждый видит то, что они должны видеть во время кэширования как можно больше вещей.

Мобильных

iPhonclub.nl имеет дело с относительно большим количеством мобильных посетителей. В прошлом он использовал WPTouch для посетителей iPhone (наряду с его родным приложением). Команда серверов должна была проделать большую работу с Varnish, nginx и W3TC, чтобы сохранить кэши для настольных и мобильных посетителей отдельно, что делает конфигурацию пользователя более сложной. Однако в конце этого года iPhoneclub.nl слиется с iPadclub.nl, чтобы стать iCulture.nl. В дополнение к слиянию, они переходят к отзывчивый дизайн, который будет лучше удовлетворить новый сайт и решить вопрос борьбы с мобильными посетителями.

Создан для работы, а не для выполнения

Задача, поднятая The Next Web является фактической архитектурой WordPress. Хотя использовать все варианты и все плагины легко, они построены для работы, а не для выполнения. С каждым изменением кода, вы должны убедиться, что это не калечит производительность.

Безопасности

Безопасность является большой проблемой для каждого пользователя WordPress, особенно для веб-сайтов с высокой видимостью. Как Neatorama указывает, сохраняя WordPress в курсе не всегда достаточно. Вы также должны держать операционную систему вашего сервера в актуальном состоянии, а также.

Huge Servers
Некоторые веб-сайты нуждаются в огромном сервере. (Изображение: Skimaniac)

Масштабируемость

Slashgear нашел его сложным для масштабирования WordPress без chucking больше оборудования на него. Он использует систему кэширования, но WordPress построен, чтобы быть динамичным, и кэширование в динамической среде не всегда работает гладко. Разработчики преодолели это, модифицируя свои плагины, чтобы использовать AJAX, чтобы вытащить живые данные на статично кэшированных сгенерированных страницах.

Комментарии

Веб-сайт, как Hot Air может получить сотни или даже тысячи комментариев для одного поста. Есть десятки сообщений каждый день, и сайт был жить в течение шести лет. «С таким количеством комментариев», говорит Марк, «вы действительно должны смотреть на оптимизацию базы данных. У нас есть несколько пользовательских плагинов, которые перехватывают запросы комментариев и переписывают их, чтобы быть проще. И вы хотите ограничить количество запросов, которые вы делаете в отношении этой таблицы. Например, я убил разделы «Прямо сейчас» и «Последние комментарии» на панели мониторинга «.

События

Как обсуждалось в отношении iPhoneclub.nl и SlashGear, Hot Air имеет дело с собственными крупными событиями. Когда происходит большое политическое событие, всего несколько минут простоя может нанести ущерб. Марк имеет системы предупреждения и автоматизированные ответы на месте. В случае возникновения проблемы, он может настроить что-то, чтобы автоматически исправить его, если он повторяется или уведомить его, когда что-то указывает на то, что проблема производительности неизбежна.

Попрощайся с WordPress?

Я спросил все блоги ли они когда-либо задумывал ситуацию, в которой они должны были бы выйти за рамки WordPress. Вот что они должны были сказать.

Я действительно не люблю всю «WordPress медленно» риторика. Это просто PHP плюс MyS’L — так это Facebook. Можно выйти за рамки определенных вещей, которые WordPress делает (например, возможно, вы замените переписать двигатель с чем-то более эффективным), но, чтобы решить принципиально, что WordPress как-то медленно и нуждается в избавлении от, вероятно, избегая конкретный вопрос, который является проблемой. Конечно, Есть аспекты WordPress, которые могут быть медленными, если вы ничего не делаете о них, но это далеко перевешивают все, что вы получите.
Писатели любят WordPress задний конец; WordPress.com работает некоторые из крупнейших веб-сайтов в мире. Цифровые тенденции серверов 33 миллионов страниц в месяц на веб-сайт, который является чрезвычайно более сложным (с технической точки), чем блог.

Джин-Поль Хорн, iPhoneclub.nl

Я не могу за свою жизнь думать, почему я хотел бы сделать это. Я использую WordPress с начала 2.0. Моя жена начала iPhoneclub.nl в декабре 2006 года на WordPress 2.0.5, и мы не оглядывались назад с тех пор. У меня был некоторый предыдущий опыт работы с PHP-Nuke и Joomla, но WordPress действительно вырос на меня за его простоту и огромное сообщество разработчиков.
Для почти каждого недостающих кусок функциональности в ядре, плагин доступен или так легко патч, что вы могли бы написать свою собственную тему конкретной функции. Я оценил как Drupal и ExpressionEngine (тогда называется pMachine), когда мы столкнулись с нашими проблемами производительности, но застрял с WordPress из-за его расширяемость и уже было четкое видение, изложенное для WordPress становится все более полнофункциональный CMS.

Следующая паутина

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

Смеющийся кальмар

WordPress продолжает развиваться вместе с нами и по-прежнему является лучшей платформой там для блогов. Есть все признаки того, что так будет и впредь и в будущем.

SlashGear

(Мы уйдем), когда WordPress станет слишком раздутым. Как вы можете видеть, каждая основная версия WordPress поставляется с более крючки (WordPress 3.0 было чуть более 750 крючков, и 3,4 имеет более 1500 крючков). На данный момент мы предпочитаем масштабируемость и надежность платформы, а не функции, которые обычно не используются.

Марк Джаквит, Горячий воздух

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

Прощаюсь

Почему кто-то когда-нибудь хотят оставить WordPress? Один из владельцев блога я говорил с был в процессе делать именно это. Neatorama электронной коммерции операции, NeatoShop, вырос, и он решил интегрировать блог и магазин в одну платформу. Это позволяет адаптировать свой процесс публикации в соответствии с его конкретными потребностями, такими как планирование и очереди нескольких сообщений, поддержание нескольких блогов с одной приборной панелью, перекрестная публикация и наличие системы внеочередных комментариев. Для Neatorama, проблема не wordPress себя, но что они не могут осуществлять крупномасштабные электронной коммерции.

Neatoshop

Я спросил Алекс Сантосо из Neatorama, почему он не рассматривал с помощью WordPress электронной коммерции плагин, таких как WooCommerce или WP электронной коммерции. Вот что он должен был сказать:

Потому что электронная коммерция это не просто корзина — есть целый другой логистики выполнения и доставки обратно мейк к нему. Мы выросли NeatoShop от продажи только 12 футболки до более чем 5000 пунктов сегодня, и мы должны были написать наше собственное программное обеспечение, чтобы позволить нам обрабатывать (т.е. корабль) заказы эффективно.Я сомнительно, что вы можете сделать крупномасштабные электронной коммерции с плагинами. Продажа десятка пунктов или около того не должно быть никаких проблем, но отслеживание тысяч пунктов в инвентаре, минимизация мошенничества, автоматизация, и логистика будет.

Интересно, что Neatorama считает, что плагинов недостаточно для осуществления крупномасштабной электронной коммерции. Но как Алекс относится к WordPress как к издательской платформе?

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

Учиться у профессионалов

Это здорово услышать о том, что все эти веб-сайты делают, но какой совет они могут предложить вам?

Серверов

Узнайте, как обращаться с серверами, или получить кого-то, кто делает. Вы должны знать, как настроить nginx и PHP-FPM, MyS’L рабом с HyperDB, лак VCLs, и NFS. «Если вы не знаете, как бороться с материалом между браузером отправки запроса и ваш код работает», предупреждает Том Уиллмот «, это серьезно ограничит вас с точки зрения того, как вещи могут быть улучшены, а также отладки проблем. Проблемы с серверами могут быть крайне разочаровывающими; если у вас нет ручки на нем, он вернется, чтобы укусить вас «.

Читать и учиться

Джин Пол Хорн советует, что вы должны идти в ногу с последними рекомендациями производительности, и он особенно рекомендует следующее:

Попросить о помощи

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

Магазин вокруг

Алекс Сантосо предлагает вам «Магазин вокруг для хостинга расходов. Подобные конфигурации оборудования могут иметь значительно отличающиеся цены от различных хостинговых компаний».

След и ошибка

SlashGear предлагает использовать методы проб и ошибки, чтобы получить вашу конфигурацию правильно. Решите, действительно ли плагин необходим. Многие плагины используют много ресурсов для простой функции, которая может быть жестко закодирована в тему. «Добавление новых аппаратных и серверных ресурсов не всегда является решением,» сказал Ewdison Затем, «но иногда это единственное решение».

Оптимизация того, что имеет значение

Марк Джаквит рекомендует не оптимизировать вслепую. «Выясните, что самые большие узкие места и устранить их. Промыть и повторить «.

Ресурсы производительности WordPress

Если вы чувствуете вдохновение, чтобы начать масштабирование, вот некоторые ресурсы, чтобы проверить:

Большое спасибо всем людям, которые внесли свой вклад в эту должность:

Оптимизация того, что имеет значение

Марк Джаквит рекомендует не оптимизировать вслепую. «Выясните, что самые большие узкие места и устранить их. Промыть и повторить «.

Ресурсы производительности WordPress

Если вы чувствуете вдохновение, чтобы начать масштабирование, вот некоторые ресурсы, чтобы проверить:

Большое спасибо всем людям, которые внесли свой вклад в эту должность:

Источник: smashingmagazine.com

Великолепный Журнал

Великолепный, сокрушительный, разящий (см. перевод smashing) независимый журнал о веб-разработке. Основан в 2006 году в Германии. Имеет няшный дизайн и кучу крутых авторов, которых читают 2 млн человек в месяц.

Добавить комментарий

%d такие блоггеры, как: