Тормозит сервер когда редактирую ноду

Главные вкладки

Комментарии

Аватар пользователя Orion76 Orion76 8 сентября 2011 в 7:52

Не корректный и не конкретный вопрос.
Сервер не может тормозить при редактировании ноды.
Сервер может тормозить при загрузке, сохранении ноды, при подгрузке данных аяксом.

Аватар пользователя Galr Galr 8 сентября 2011 в 9:21

у меня из-за ckeditor при редактировании ноды аж комп вешался, разбираться не стал, просто сменил на TinyMCE.

Аватар пользователя sf3 sf3 8 сентября 2011 в 14:46

Поставил логи mysql.
Ещё там всё тормозит при удалении ноды.

>Как можно поставить диагноз не видя больного?

Дать больному рекомендации на что обращать внимание?

Аватар пользователя Orion76 Orion76 8 сентября 2011 в 15:25

"sf3" wrote:
Дать больному рекомендации на что обращать внимание?

посмотреть логи Друпал...
Обратиться в поддержку хостинга...

Аватар пользователя divined divined 8 сентября 2011 в 15:47

Со стороны системного администрирование могу сказать что односторене правильный вопрос.

При редактировании, сохранении, удалении ноды действительно может подтормаживать сервер.
Конечно если при редактировании то имеем виду долгое открытие страницы редактирования ноды, или долгие пост запроси по типу (зависимых списков и т.д., т.е. ahah, ajax и прочее).

Вариантов на самом деле несколько:

1. Ваш сайт перегружен модулями, такими как:
редакторы, те же зависимы списки, различные conditional fields, manage forms, node form cols..
которые темизируют, упрощают процесс создания ноды.
Некоторые из которых могут, в том числе, грузить браузер вызываю утечку памяти у javascript handler'a браузера.

2. Ваш сервер либо калькулятор, либо не настроен.

Например я уже убедился что даже для 1 сайта на друпале 2Гигов оперативки и 2Гц проца недостаточно.

Во время активного запроса Дру нагружает Апач вплоть до 80% от номинала и на 700 метров оперативы. Соответственно если на сервере еще что-то выполняется параллельно, типа почтового сервера... Во общем как и сказали нужно смотреть или "больного - Друпал", или "больного - Сервер"

Аватар пользователя divined divined 8 сентября 2011 в 16:00

Добавление.

Друпал последнее время это неповоротливый слон. Да что говорить, вы посмотрите как открывается drupal.ru, создание ноды до 10 сек, открытие 5-8 сек.

Это показывает нам эталон работы самого друпала.
Если вы хотите чтобы у вас было быстрее чем друпал.ру и не надейтесь ))

Аватар пользователя chilic chilic 8 сентября 2011 в 16:05

Почитать про InnoDB, и уже станет лучше.
Не переходя на личности, неповоротливый слон - это мозг программиста, или человека делающего сайт.

Возможно если описать проблему более детально, то помощь придёт быстрее Smile

Аватар пользователя chilic chilic 8 сентября 2011 в 16:15

У создателей этого сайта, проблема со временем, для доведения его до ума.
+ отсутствие финансирования.
Я всего лишь сторонник того, что Drupal такой, каким его готовят.
Возможно Вы сможете привести примеры сайтов, на отличных от Drupal, CMS. С примерно равнозначной нагрузкой и сервером? Очень интересно провести сравнение.

Аватар пользователя divined divined 8 сентября 2011 в 16:22

Трудновато привести пример, у меня всего один проект не на друпале, и на одном хосте с друпалом.
Это проект на битриксе.

Соответственно:

Сервак: Pentium 4 2.2, 2Г ОЗУ
Всего 2 сайта, один на дру, второй на битриксе.

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

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

Аватар пользователя divined divined 8 сентября 2011 в 16:24

У меня сейчас 2 сайта на друпале, один открывается 370мс, второй 980мс (в основном по причине того что он еще в активной разработке и там не сведены js и css)

Но мы же говорим не про открытие нод, а про их создание, а это уже другие цифры 8-10сек, это минимальные показатели при среднем наполнении модулями и типом материала 10-20 полей)

Аватар пользователя Orion76 Orion76 8 сентября 2011 в 16:42

"divined" wrote:
Друпал последнее время это неповоротливый слон

Он не слон, он то что вы из него сделаете-)))

"divined" wrote:
Если вы хотите чтобы у вас было быстрее чем друпал.ру и не надейтесь ))

ну зачем же так обобщать? Скорость загрузки зависит от многих факторов...
или drupal.org разработан на другой cms?

Бывает и папка с 10-ю файлами в консоли шелла по 10 сек открывается... особенно если сайт не на отдельном "железном" сервере-)))

Аватар пользователя chilic chilic 8 сентября 2011 в 16:42

"divined" wrote:
цифры 8-10сек

Я же и говорю) смотря как готовить Drupal.
Уважаемый, Вы не подумайте ничего плохого, ни в коем случае я не принижаю Ваших способностей, просто думаю что Ваше мнение субъективно.

Аватар пользователя divined divined 8 сентября 2011 в 16:50

Никто не спорит что оно субъективно Smile Говорю ведь я и только за свой опыт.
Если у вас есть другие цифры прошу их тут привести. Тогда я пойму что у меня где-то еще есть проблемы и займусь их поиском и решением. Я тоже не говорю что я супер-пупер батька в друпале Smile

А дупал.орг это действительно совершено иная цмс, или вы думаете они все свои решения в общий доступ и бесплатно выкладывают Smile

Мне тогда будет очень интересно за счет чего они живут )

Аватар пользователя divined divined 8 сентября 2011 в 17:14

RxB

У меня херова куча сайтов на друпале и больше 500мс я не наблюдал ещё

Для чего? Для создания ноды? Для открытия страницы редактирования ноды?
Открытие самой страницы закэшированой, это понятно что не будет превышать 500мс.

А вот с отключенным кэшированием извините, 2-7сек. Таковы цифры друпала на сег день.

Вопрос: к этому сайту вы имеете отношение? Smile

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 8 сентября 2011 в 17:28

"divined" wrote:

Открытие самой страницы закэшированой, это понятно что не будет превышать 500мс.

Незакешированной для авторизованного пользователя.
Меряться будем?
Предлагаю на тяжёлой сборке Drupal Commons

Аватар пользователя Orion76 Orion76 8 сентября 2011 в 19:01

"divined" wrote:
А дупал.орг это действительно совершено иная цмс, или вы думаете они все свои решения в общий доступ и бесплатно выкладывают =)

хорошо...видел работу универсальной сборки drupal\ubercart какой-то студии
что интересно:
установлено около сотни модулей..
подгружаются все нужные-ненужные js css
сам html-код около 1000 строк

скорость загрузки страницы каталога (вывод views) не более 1 сек.

Просто включено кэширование...

зы..ну да... вроде VDS... отдельный врядли..

Аватар пользователя sf3 sf3 8 сентября 2011 в 22:20

Это не проблемы сервера ибо было на 3-х разных с абсолютно разными настройками.

>Почитать про InnoDB, и уже станет лучше.

Что именно читать про InnoDB? Какие таблицы можно в него перевести?

Всё работает быстро, тормоза только при редактировании/удалении. При создании всё ОК.

Никакие AJAX, conditional fields, manage forms, node form cols не установлены.

Я грешил на LiveJournal crossposter, но это не он.

Аватар пользователя Orion76 Orion76 8 сентября 2011 в 22:32

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

Что в логах:
1.Друпал (раздел Отчеты)
2.MySQL
3.PHP
4.Apache( или что-там у вас)

???

Аватар пользователя sf3 sf3 9 сентября 2011 в 0:42

Тормоза кстати только когда редактируешь или удаляешь из ноды напрямую. Когда это делаешь через Содержимое не заходя в ноду - всё ОК. Иногда кстати нет тормозов.

Какие кстати отчёты? У меня только Недавние записи в системном журнале и там ничего такого.

Логи апача, php и mysql надо будет глянуть.

Это может быть модуль Boost?

Аватар пользователя divined divined 9 сентября 2011 в 11:23

Ну давайте тогда и я свои наблюдения буду говорить:

1.
Table_locks_immediate 300499 Количество раз, когда блокировка была нужна немедленно.
Table_locks_waited 371 Количество раз, когда серверу приходилось ожидать блокировку.

2.
Qcache_lowmem_prunes 55372 Количество раз, когда MySQL приходилось удалять запросы из кэша из-за нехватки памяти. В идеале равно нулю.

Соответственно вот те штуки которые у меня вызывают недовольство. Как эти вещи проанализировать более детально.

ПС. для тех кто не знает, анализ SQL у дру находится по адресу: admin/reports/status/sql

Аватар пользователя divined divined 9 сентября 2011 в 11:47

Посмотрел активные запросы к базе.

Около 50+ запросов в состоянии Locked:
/* ????? : db_query */ SELECT COUNT(*) FROM (SELECT node_data_field_exhimage.field_exhimage_fid

ну и дальше не видно...
Как узнать где вызывается этот запрос?

Аватар пользователя divined divined 9 сентября 2011 в 13:48

Кильнул все процессы, теперь:
| 4121 | | localhost | | Query | 128 | Sending data | /* ????? : locale */ SELECT s.source, t.translation, t.language FROM locales_source s LEFT JOIN |
| 4136 | | localhost | | Query | 87 | Sending data | /* ????? : locale */ SELECT s.source, t.translation, t.language FROM locales_source s LEFT JOIN |

Не выполняются эти запросы, т.е. долго выполняются 128 сек это перебор, вам не кажется )))
Причем активных всего этих два запроса.

Аватар пользователя divined divined 9 сентября 2011 в 14:41

Вот еще:
45.62 мс
cache_get
SELECT data, created, headers, expire, serialized FROM cache_menu WHERE cid = 'links:navigation:tree-data:40a57ccbaa85c3f039b6448ca5c3c3d8'

Вот такой запрос из друпала выплняется 45мс, напрямую из консоли 1.4мс, кэшированный 0.3мс
Каковы причины различия?

Аватар пользователя divined divined 9 сентября 2011 в 14:44

Так же мне интересно:

Главная страница генерирует 480+ запросов к БД, 80% из которых запросы i18nstrings_get_string.

Аватар пользователя divined divined 9 сентября 2011 в 14:53

3976.75
_locale_rebuild_js
SELECT s.lid, s.source, t.plid, t.plural, t.translation FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND t.language = 'ru' WHERE s.location LIKE '%.js%' AND s.textgroup = 'default' ORDER BY t.plural DESC

Этот запрос вообще выполняется 4сек, я в шоке. Куда посоветуете смотреть дальше?

Аватар пользователя divined divined 10 сентября 2011 в 13:29

Смотрел какие запросы чаще всего идут в базу параллельно для перевода таблицы в InnoDB.
Увидел что это в основном cache_menu и cache_form. Но перевести их в InnoDB не даст прироста производительности, т.к.

cache_form 1Гиг, cache_menu 0.5Гиг

Перевод их в InnoDB потребует от меня перенастроить mysql на использование буфера в 2Гиг, а это вся моя оперативка. Меньшее число буфера не даст эффективности InnoDB.

Вопрос: Эти таблицы должны быть такими огромными? Можно их отчистить вообще? Почему друпал при нажати кнопки отчистить все кэши их не чистит?

И mysqltuner сообщает: Joins performed without indexes: 907

Как узнать какие запросы объединяют таблицы без индексов, да и какие таблицы Smile

Аватар пользователя divined divined 10 сентября 2011 в 22:32

Полное отключение кэша друпал для меня дало увеличение производительности в 20 раз.
Т.е. раньше форма создания ноды занимала 700+ запросов, которые выполнялись за 4-5сек, после отключения - 200-300мс. Основным источником задержки были функции cache_get и cache_set, которые выполнялись по 2 раза для каждого типа содержимого и занимали до 400мс каждый.

Отключил след образом: в файле cache.inc в начале функций cache_get и cache_set вставил:

<?php
if(variable_get('cache'CACHE_DISABLED) == CACHE_DISABLED) {
   return 
0;
}
?>

Конечно я думаю что виноват не друпал, а какой-то из модулей (грешу на nodehierarchy), который и заставляет запросы из этих функций выполнятся неправильно и с большим объемом данных.
Примерный результат запроса весил от 2 до 3Мб. И таких запросов при создании ноды было 10+.

Аватар пользователя divined divined 10 сентября 2011 в 22:36

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

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 10 сентября 2011 в 22:49

"divined" wrote:
Кстати, отключение модуля locale уменьшает количество завпрос с 700 до 200, и дает прирост производительности в 200 раз.

на вашем херовом хостинге(сервере), сделайте поправку

Аватар пользователя divined divined 11 сентября 2011 в 0:37

на вашем херовом хостинге(сервере), сделайте поправку...

какую? mysql оптимизирован. mysqltuner по всем пунктам пишет ОК
Скорость запросов с консоли, да и все нагрузочные тесты sysbench показывают отличные результаты.

Сервер вроде настроен отлично, опять же хотелось повторить что Битрикс на нем работает на ура. Время генерации админки битрикса не превышает 800мс. Время создания материала в инфоблоке не превышает 1сек.

Так же стоит nginx который отдает статику, а пхп отправляет апачу. Анонимам страница отдается за 400-700мс.
Скорость переходов по страницам админки, тоже приемлемая: 0.5-2сек. (Друпал)

Проблема при открытии формы создания материала все еще актуальна, правда после отключения кэша уменьшилась вплоть до 3сек.

Теперь бы хотелось вылечить от 100 кратных запросов модуля locale и i18n. А также найти причину огромных размеров таблиц кэша и больших объемов кэшируемых данных.
Посоветуйте плиз куда копать.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 11 сентября 2011 в 1:03

Я в другом топике предлагал меряться письками скоростью выполнения запросов.
У вас криво настроен сервер, либо в силу убогости и/или убитости железяки из неё больше не вытянуть

Аватар пользователя divined divined 11 сентября 2011 в 14:06

Давайте лучше померяемся размерами запрса cache_get,

длина запроса у меня 2.8Мб текстовой информации.
Т.е. тело запроса по длине больше романа "Война и Мир".

Так же померяемся размерами таблицы cache_form, которая весит у меня 1Гиг.

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