divined: Комментарии

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

6 декабря 2011 в 18:26

Оффтоп: где вариант про то что очень много букавок и не осилил?

По теме:

drupal_process_form($form_id, $form, $form_state);
разве не вызывает сабмит формы?

попробуйте не через
$form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
а через
$form = form_builder($form_id, $form, $form_state);

если на форме ваш ахах делает изменения незабывайте обновлять кэш после изменений:
form_set_cache($form_build_id, $form, $form_state);

6 декабря 2011 в 18:11

Я как штатный экстрасенс компании, могу позволить предположить что это форма Smile

На основе этого предположения я могу выдвинуть гипотезу об использовании javascript, а именно jQuery для столь мизерных задач, возможно нечто эфемерное типа:

30 ноября 2011 в 14:45

А нету там такой настройки:
1. Количество материалов на главной странице:
2. Длина урезанных сообщений:
3. Просмотр материала:

и все.
У меня наоборот проблема как включить? Кнопка отделения анонса есть, но ничего не происходит Smile
Стоит Визивиг, может он мешает?

11 сентября 2011 в 14:06

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

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

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

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

11 сентября 2011 в 0:37

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

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

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

10 сентября 2011 в 22:32

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

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

10 сентября 2011 в 13:29

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

cache_form 1Гиг, cache_menu 0.5Гиг

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

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

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сек, я в шоке. Куда посоветуете смотреть дальше?

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мс
Каковы причины различия?

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 сек это перебор, вам не кажется )))
Причем активных всего этих два запроса.

9 сентября 2011 в 11:47

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

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

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

9 сентября 2011 в 11:23

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

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

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

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

8 сентября 2011 в 17:14

RxB

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

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

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

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

8 сентября 2011 в 16:50

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

8 сентября 2011 в 16:27

я могу посоветовать посмотреть тему fusion, в именно файл template.php и скопировать код оттуда.
На этой все файлы темизации работают без проблем.

8 сентября 2011 в 16:24

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

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

8 сентября 2011 в 16:22

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

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

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

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