Масштабируемость, нагрузка и быстродействие

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

icon:

Пример конфига nginx(php-fpm)+Boost

Аватар пользователя sg85

Выложил конфиг для виртуального сервера nginx(обычно они живут там - /etc/nginx/sites-available), обратить внимание стоит на то, что содержится между ##### BOOST ##### и ##### BOOST END #####, все остальное там чисто для наглядности. Прикручивать Boost к nginx имеет смысл только, если в ТЗ стоит пункт "Очистка кеша сразу при добавлении материала", про настройку самого буста и vfs писать ничего не буду, информации по этому поводу и без того много, а вот с конфигами nginx через php-fpm беда.

#Стандартный реврайт урла
server {
        listen 80;
        server_name example.com;
        rewrite ^(.*) http://www.example.com$1 permanent;
}
server {
        server_name www.example.com;
        root /var/www;
        listen 80;
        index index.php;
 
        #как-то не задумывался, зачем оно надо
1 Спасибо

Основная настройка Apache Solr(3.6.2) + Jetty(min) под Drupal для слабых VPS или Dev_Env

Аватар пользователя sg85

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

ставим яву
если таковой еще не имеется
sudo apt-get install openjdk-6-jdk
6 для примера, является минимальным требованием, на dev лучше ставить 7, особенно если используете NetBeans ибо, в свою очередь, является его минимальным требованием

Качаем солр
wget http://archive.apache.org/dist/lucene/solr/3.6.2/apache-solr-3.6.2.tgz

0 Спасибо

Темизация page.tpl.php, node.tpl.php влияет ли на скорость?

Аватар пользователя elf39

Добрый день, решил темизировать page.tpl.php, node.tpl.php для каждого типа материала, каждой таксаномии. Будет это влиять как то на скорость работы друпала? Если да то в какую сторону?

0 Спасибо

Node или entity? В чем хранить и выводить? Вопрос по архитектуре: хранение, вывод и имопорт.

Аватар пользователя Artu

Есть материалы разных типов, в каждом из них 20-30 полей.
Типов материалов для старта 6 штук, планируется расширение до 30-50.
Поля в основном цифровые или краткий текст. Где-то 1/3 таксономия.

Нужно:
-Фильтровать по некоторым полям
-Хранить поля (само собой)
-Импортировать материалы (ячейка - поле)

Посещаемость сайта планируется хорошая. Я пока не знаю точно какая, в этом и вопрос (см. ниже).

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

0 Спасибо

Быстрый способ оптимизации параллельных загрузок на Друпал и nginx

Аватар пользователя direqtor

Однажды разглядывая «водопадный» дисплей работы сети в Опере по мере того, как в него грузился один из моих проектов, я понял, что пора и на нем сделать оптимизацию того типа, который указан в заголовке статьи. При довольно быстром в пол-секунды получении кода страницы, полсотни вставленных в нее картинок секунд на пять оттягивали заветное событие DOM loaded, да и разница между DOM loaded и Page loaded тоже была того же порядка. Растём-с.

0 Спасибо

MySQL как оптимальнее?

Аватар пользователя Garese

Подскажите как оптимальнее или правильнее что ли.

Допустим делаю выборку:

0 Спасибо

Сверхбыстрый хостинг или ... ?

Аватар пользователя NightL

Всем доброй ночи или доброе утро!
У меня совсем небольшой опыт с хостингами, всего пробовал около 10-ти различных компаний и обычно долго с ними не расставался. Сегодня мне потребовался очередной хостинг (виртуальный) и решил попробовать еще кого-нибудь. Имя компании писать не буду дабы не сочли за рекламу, но суть вот в чем:

Если установить друпал, в моем случае 7-й, то я обычно ставлю сразу с 10-к необходимых сторонних модулей типа вьюса патафто токен и прочих стандартных и девел за компанию и смотрю на циферки что он выводит. Занятие может это и бесполезное, но вот я так делаю. Для себя я всегда до сегодняшнего дня полагал, что цифры для главной или загрузки ноды в размере

100-200 хорошо
200-300 удовлетворительно.
300+ плохо

0 Спасибо

Быстродействие сайта и размер БД.

Аватар пользователя Lavio

Спустя некоторое время работы сайта БД разраслалсь до 1,6 Гб. Исправил через phpmyadmin с помощью оптимизации таблиц. После чего ее размер сократился до 400 мб. Это при том, что на сайте пока особо ничего нет. Несколько нод, разве что довольно много модулей, и часто удалял в большом количестве ноды/товары когда разрабатывал модуль автоматической загрузки. Сейчас все товары и их дисплеи удалил. В последнее время сам сайт стал дико тормозить. После оптимизации БД дела пошли лучше, но все же это не то что было в начале(. Так вот, вопросы:

  1. Какого размера должна быть средняя БД для интернет магазизна? Количество товаров будет около 10000.
  2. Как можно оптимизировать CMS чтобы сайт не тормозил?
0 Спасибо

Тормоза при редактировании таксономии и не только

Аватар пользователя zeroif

При редактировании таксономии вот такое(прикрепил) происходит.
При любом добавлении материала или редактировании сайт тормозит.

Какие варианты решения? сервер выделенный Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz

0 Спасибо

Решение проблемы просаженной файловой подсистемы

Аватар пользователя roman-yrv

Добрый день.

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

Хочу спросить следующее.
Если работать с хостером, который использует XEN или KVM, то проблемы с перегрузкой файловой подсистемы уйдут или останутся ?
Поделитесь, пожалуйста, опытом.

0 Спасибо

Прозрачная передача апдейтов из сервера разрабтки на продакшн сервер

Аватар пользователя Artu

Сервер 1. Сервер разработки.
Сервер 2. Реальный, работающий сайт.

Пока на сервере 1 ведется разработка на сервере 2 меняются и добавляются данные.

Как передать обкатанные на сервере 1 наработки на сервер 2? Что б понятно и прозрачно, в т.ч. для клиента. Желательно как-то поддерживать версионность. Что б на сервере 2 не пропали введенные данные.

Понятно что скрипты передаются в виде файловой структуры,а как быть с данными в т.ч. и настройками?

1)модуль Futures? Еще не работал с ним. Подходит ли он для этих целей? Он генерит модули. Если удалить сервер 1 (а что его пожизненно хранить?) то сервер 2 будет частично состоять из сгенерированных Futures модулей.. Что ж тут хорошего?

0 Спасибо

[Решено] Googlebot и Facebook bot поселились на сайте и съедают ресурсы

Аватар пользователя sanita

Колеги, знаю что вопрос не совсем по друпалу, но прямо связан с использованием большого количества ресурсов оного, друпала то есть.

Поселились у мень два бота, точнее - целый выводок ботов гугла и фейсбука. Они прям стаями наседают на сайт и живут в нем толпами до 140 посетителей в отдельный момент.

С одной стороны это хорошо, что такие важные боты навещают сайт, но с другой - надо иметь совесть. Ресурсов жрут немерянно.

Я уже и в robots.txt ограничение Crawl-delay 20 поставила и в Facebook RSS только раз в день публикую, но ничего не помагает - как толпились, так и толпятся, набегая волнами с десятков разных IP. Совсем отрубать глупо - вижу же, что google в индекс новые страницы вводит и в выдачи они есть.

0 Спасибо

Время выдачи страницы на свежесозданном сайте

Аватар пользователя roman-yrv

Добрый день.

Хочу задать несколько абстрактный вопрос.

А именно, допустим, заказали хостинг или недорогой VPS.
Установили туда Drupal 7 и добавили несколько тестовых записей (например, несколько статей).
Тема используется стандартная - bartik.
Установили модуль devel и настроили его, чтобы он показывал время генерации страниц + время генерации и кол-во SQL-запросов.

Запустили главную страницу свежеинсталлированного сайта и смотрим.

Вот какое время создания страницы в этом случае считается допустимым, а какое - изначально недопустимым и с этим хостингом связываться не нужно.

Вот, например, если время генерации такой страницы будет составлять порядка 400-500 миллисекунд - это нормально ?
Или это очень слабо ?

0 Спасибо

Потянет ли друпал 2 млн node c большим кол-вом полей?

Аватар пользователя aksernar

Потянет ли друпал 2 млн node c большим кол-вом полей?
С учетом того, что: много полей, много таксономии. А сама БД node+cck+taxonomy весит около 10 Гб.
Или сразу отказываться от архитектуры друпала?

Я конечно понимаю, что можно настроить взять мега сервак с неограниченным кол-вом оперативки, но это уже слишком...

0 Спасибо

HTML-кеш для Друпал 7

Аватар пользователя evilart

Коллеги, кто-нибудь знает хороший кеш не через БД (честно говоря не понимаю, зачем он там хранится и почему так реализовано в Друпал), а в файлах HTML?

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

Кстати, если кому нужен модуль - могу поделиться.

0 Спасибо

Есть ли смысл в обновлении mysql

Аватар пользователя AndreyL

Здравствуйте.
Помогите решить, чтобы не наломать дров: на хостинге можно "нажать кнопочку" - и произвести обновление mysql
сейчас работает 5.0.96-community
отображается возможность использовать:
MySQL 5.0 (это текущая)
MySQL 5.1
MySQL 5.5

Какие сложности могут быть? Есть ли смысл вообще этим заняться? Я вижу опасность в том, что хостер считает для себя проблемой вернуть старую версию после обновления, т.е. он этим заниматься не будет - считает это небезопасным (Downgrades of MySQL are unsafe and unsupported).

0 Спасибо

В Мультисайтинге, одновременно общие и раздельные типы материалов возможны?

Аватар пользователя merlin

Было бы конечно здорово, но как я понимаю это невозможно.
Однако спрошу на всякий случай, может посредством каких то дополнительных модулей.
То есть
сайт1 имеет типы материала - {A,B,C,D}
сайт2 имеет типы материала - {A,B,E,G}
где A,B - общие типы материалов (и сами материалы общие)
а C,D - только в сайт1 и E,G - только в сайт2

Никто не пробовал это реализовать? Вообще это теоретически возможно?

0 Спасибо

Использование нескольких баз данных

Аватар пользователя astrameridian

Если сайт на аккаунте 1 вирт.хостинга будет использовать все таблицы базы данных аккаунта 1, а для всех таблиц кэша будет использовать аккаунт 2. (Ресурсы на аккаунтах распределены cloudlinux)
1. Даст ли это преимущество в меньшей загруженности процессора на аккаунте 1 ?
2. Нужно ли обязательно для аккаунта 2 иметь выделенный IP адрес, чтобы подключаться к его базе?

Могут ли вообще от этой идеи быть преимущества в производительности, снижении нагрузки на сайт?

0 Спасибо

TokuMX выводит NoSQL на новый уровень

Аватар пользователя Crea

Появился форк MongoDB под названием TokuMX от компании Tokutek, поддерживающий много важных вещей, которых нехватало MongoDB, и которые удерживали многих от использование этой замечательной СУБД:

  • поддержка ACID
  • отсутствие глобальных блокировок на запись
  • хорошая скорость на запись когда данные не помещаются в память
  • полноценные транзакции, как в 1 запросе, так и в нескольких запросах

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

0 Спасибо

MySql vs PostgreSql vs SQLite

Аватар пользователя Ch

Давно интересует это вопрос. Сделал бенчмарки на "чистом" друпале. Сервер один и тот же, настройки дефолтные, без какого либо "тюнинга". Если кто нибудь делал похожее сравнение, напишите свои результаты.

Тип БД Результат
MySql 12 min 25 sec
PostgreSql 21 min 8 sec
SQLite 15 min 10 sec
0 Спасибо