Перейти к содержимому


Фотография
- - - - -

Превышение нагрузки на хостинг

хостинг map api google map

Лучший Ответ SmetDenis , 14 March 2014 - 10:48

Я подправил файл jbuniversal\framework\models\jbmodel.values.php
Можете сравнить его с оригиналом (в totalCmd или notepad++ есть инструмент для этого).

Проблема была что, Joomla 2.5 не мог работать с названием группы, где используется слеш. Для большинства сайтов это не критично. Обязательно исправлю к следующему релизу. Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 22

#1 Den_mrt

Den_mrt

Отправлено 09 March 2014 - 16:35

Добрый день.

Имею сайт с метками на гугл карте.

Недавно сделал вывод нескольких точек на одной карте (от 30 до 300) и таких страниц около 50ти (а планируется больше). Данные берутся из элемента уже координатами, без запроса к гуглу или другим сервисам геокодинга. Сама карта, при открытии страницы, грузит достаточно быстро, без проблем.

 

После чего начал получать письма от хостера с превышением нагрузки, причем распределение по времени очень странное. То есть нагрузка максимальная в час-два ночи, а по данным метрики никого в этот момент не было. Попросил хостера прислать логи. Он прислал статистику медленных запросов.

# 709s user time, 2.1s system time, 26.04M rss, 204.74M vsz
# Current date: Sun Mar  9 11:18:05 2014
# Hostname: mysql5.ihc.ru
# Files: /var/log/mysql-slow.log-20140308
# Overall: 7.46k total, 14 unique, 0.09 QPS, 0.01x concurrency ___________
# Time range: 2014-03-07 04:03:01 to 2014-03-08 03:57:50
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
# Exec time          1229s     2ms      3s   165ms   219ms    93ms   171ms
# Lock time             6s    26us   488ms   847us   657us    10ms   113us
# Rows sent          9.48M       1 139.85k   1.30k   5.45k   3.04k  329.68
# Rows examine     329.57M    1011 139.85k  45.26k  56.74k  16.80k  49.01k
# Rows affecte           0       0       0       0       0       0       0
# Rows read        329.57M    1011 139.85k  45.26k  56.74k  16.80k  49.01k
# Bytes sent       769.05M     108  80.68M 105.62k 328.61k   1.28M  17.59k
# Query size         5.84M      78   1.17k  820.88   1.09k  129.33  755.64

# Profile
# Rank Query ID           Response time  Calls R/Call V/M   Item
# ==== ================== ============== ===== ====== ===== ==============
#    1 0x6EA2DABC851E62FC 897.9274 73.1%  4934 0.1820  0.01 SELECT jos_zoo_item jos_zoo_jbzoo_index_card
#    2 0xBA1D7123A3AA9D32 310.2388 25.2%  1484 0.2091  0.03 SELECT jos_zoo_item jos_zoo_jbzoo_index_card
# MISC 0xMISC              20.5734  1.7%  1038 0.0198   0.0 <12 ITEMS>

# Query 1: 0.06 QPS, 0.01x concurrency, ID 0x6EA2DABC851E62FC at byte 74780414
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.01
# Time range: 2014-03-07 04:03:01 to 2014-03-08 03:54:45
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count         66    4934
# Exec time     73    898s   141ms      1s   182ms   208ms    45ms   171ms
# Lock time     57      4s    75us   420ms   741us   301us     9ms   108us
# Rows sent      9 960.08k      67     334  199.26  329.68  131.89   65.89
# Rows examine  72 240.07M  49.57k  50.09k  49.82k  49.01k       0  49.01k
# Rows affecte   0       0       0       0       0       0       0       0
# Rows read     72 240.07M  49.57k  50.09k  49.82k  49.01k       0  49.01k
# Bytes sent     7  57.11M   5.45k  18.37k  11.85k  17.59k   6.20k   5.20k
# Query size    62   3.64M     774     774     774     774       0     774
# String:
# Databases    название базы
# Hosts
# Last errno   0
# Users        название базы
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms  ################################################################
#    1s  #
#  10s+
# Tables
#    SHOW TABLE STATUS FROM `название базы` LIKE 'jos_zoo_item'\G
#    SHOW CREATE TABLE `название базы`.`jos_zoo_item`\G
#    SHOW TABLE STATUS FROM `название базы` LIKE 'jos_zoo_jbzoo_index_card'\G
#    SHOW CREATE TABLE `название базы`.`jos_zoo_jbzoo_index_card`\G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT tIndex.e_97ea4c26aea54cbfa30434e52f766cda_s AS value, 
        tIndex.e_97ea4c26aea54cbfa30434e52f766cda_s AS text, 
        COUNT(tIndex.e_97ea4c26aea54cbfa30434e52f766cda_s) AS count
FROM jos_zoo_item AS tItem
INNER JOIN jos_zoo_jbzoo_index_card AS tIndex ON tIndex.item_id = tItem.id

WHERE tItem.access IN (1)
 AND tItem.state = '1'
 AND (tItem.publish_up = '0000-00-00 00:00:00' OR tItem.publish_up <= '2014-03-07 01:22:42')
 AND (tItem.publish_down = '0000-00-00 00:00:00' OR tItem.publish_down >= '2014-03-07 01:22:42')
 AND tItem.searchable = '1'
 AND tItem.type = 'card'
 AND tItem.application_id = '5'
 AND tIndex.e_97ea4c26aea54cbfa30434e52f766cda_s <> ""
 AND tIndex.e_97ea4c26aea54cbfa30434e52f766cda_s IS NOT NULL

GROUP BY tIndex.e_97ea4c26aea54cbfa30434e52f766cda_s\G

# Query 2: 0.02 QPS, 0.00x concurrency, ID 0xBA1D7123A3AA9D32 at byte 1602742293
# This item is included in the report because it matches --limit.
# Scores: V/M = 0.03
# Time range: 2014-03-07 08:34:27 to 2014-03-08 03:54:45
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count         19    1484
# Exec time     25    310s   176ms      2s   209ms   241ms    79ms   189ms
# Lock time     28      2s    80us   488ms     1ms   384us    14ms   108us
# Rows sent     85   8.09M   5.58k   5.58k   5.58k   5.58k       0   5.58k
# Rows examine  25  85.66M  59.11k  59.11k  59.11k  59.11k       0  59.11k
# Rows affecte   0       0       0       0       0       0       0       0
# Rows read     25  85.66M  59.11k  59.11k  59.11k  59.11k       0  59.11k
# Bytes sent    63 490.84M 338.70k 338.70k 338.70k 338.70k       0 338.70k
# Query size    18   1.10M     774     774     774     774       0     774
# String:
# Databases    название базы
# Hosts
# Last errno   0
# Users        название базы
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms  ################################################################
#    1s  #
#  10s+
# Tables
#    SHOW TABLE STATUS FROM `название базы` LIKE 'jos_zoo_item'\G
#    SHOW CREATE TABLE `название базы`.`jos_zoo_item`\G
#    SHOW TABLE STATUS FROM `название базы` LIKE 'jos_zoo_jbzoo_index_card'\G
#    SHOW CREATE TABLE `название базы`.`jos_zoo_jbzoo_index_card`\G
# EXPLAIN /*!50100 PARTITIONS*/
SELECT tIndex.e_c716cbee7b914af2a3ec05c348bbd2c8_s AS value, 
        tIndex.e_c716cbee7b914af2a3ec05c348bbd2c8_s AS text, 
        COUNT(tIndex.e_c716cbee7b914af2a3ec05c348bbd2c8_s) AS count
FROM jos_zoo_item AS tItem
INNER JOIN jos_zoo_jbzoo_index_card AS tIndex ON tIndex.item_id = tItem.id

WHERE tItem.access IN (1)
 AND tItem.state = '1'
 AND (tItem.publish_up = '0000-00-00 00:00:00' OR tItem.publish_up <= '2014-03-07 16:48:46')
 AND (tItem.publish_down = '0000-00-00 00:00:00' OR tItem.publish_down >= '2014-03-07 16:48:46')
 AND tItem.searchable = '1'
 AND tItem.type = 'card'
 AND tItem.application_id = '5'
 AND tIndex.e_c716cbee7b914af2a3ec05c348bbd2c8_s <> ""
 AND tIndex.e_c716cbee7b914af2a3ec05c348bbd2c8_s IS NOT NULL

GROUP BY tIndex.e_c716cbee7b914af2a3ec05c348bbd2c8_s\G

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


  • 0

#2 SmetDenis

SmetDenis

Отправлено 10 March 2014 - 06:07

Добрый день.

 

Сколько у вас материалов на сайте?

Пробовали включать кеш?

Зачем вам 300 точек на одной карте? Сама страница будет весить довольно много.

Какой размер таблицы jos_zoo_jbzoo_index_card?

Сколько очков показывает тест производительности по базы данных?


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Den_mrt

Den_mrt

Отправлено 11 March 2014 - 05:27

1) материалов 13к, категорий наверное штук 300

2) включен

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

4) 19мб

5) как и чем сделать этот тест ? 

 

вспомнил про тест JBZoo, если его имели ввиду то:

Работа сайта в целом 36 0

Процессор 11 0

База данных 19 0

Почтовая система 75 0

Файловая система -6 0

Итого попугаев  17 0 

Тестов провалено 12 0
 

красные строчки в MySQL — Скорость работы базы данных

10 000 Select и Fetch с помощью Joomla API
Время выполнения SELECT 10 000 записей и их циклического перебора 0.038 0.030 сек Чтение из базы (в комплексе)
Используется наполненная и проиндексированная таблица 4 484 7 800 Запись в базу данных (в комплексе)
Используется наполненная и проиндексированная таблица 4 245 5 600 Изменение базы данных (в комплексе)
Используется наполненная и проиндексированная таблица 4 360 5 800

Сообщение отредактировал Den_mrt: 11 March 2014 - 05:40

  • 0

#4 SmetDenis

SmetDenis

Отправлено 11 March 2014 - 08:28


Выбрать из 13 000 материалов 300 точек - это простое дело.
Обычно база данных в тестах показывает более лучшие результаты чем у вас.
От количества категорий скорость подобных запросов не зависит.

Видимо у вас шаред хостинг?
По моему, нагрузка на сервер появляется только тогда когда обновляется кеш сайта.
Можно попробовать использовать в качестве кеша APC, memcache, xcache (в настройках Joomla) вместо файловой системы.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 Den_mrt

Den_mrt

Отправлено 11 March 2014 - 14:06

Видимо у вас шаред хостинг?
По моему, нагрузка на сервер появляется только тогда когда обновляется кеш сайта.
Можно попробовать использовать в качестве кеша APC, memcache, xcache (в настройках Joomla) вместо файловой системы.

попробую предложенные варианты, протестирую, отпишусь.


Сообщение отредактировал Den_mrt: 11 March 2014 - 14:25

  • 0

#6 Den_mrt

Den_mrt

Отправлено 11 March 2014 - 15:04

Можно попробовать использовать в качестве кеша APC, memcache, xcache (в настройках Joomla) вместо файловой системы. 

Нет такого в настройках джумлы, есть только в "файл". 

Погуглил что то не нашел ответа.


  • 0

#7 SmetDenis

SmetDenis

Отправлено 11 March 2014 - 15:07

Нет такого в настройках джумлы, есть только в "файл". 
Погуглил что то не нашел ответа.


Видимо у вас нет поддержки этих модулей на хостинге
x7u_200x0.png

Они появляются в списке если включены.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 Den_mrt

Den_mrt

Отправлено 11 March 2014 - 15:38

Странно, но до того как написать ответ, уточнял у хостера этот вопрос, они сказали все включено, тк пока гуглил видел этот список.

Видимо надо еще раз спросить.


  • 0

#9 Den_mrt

Den_mrt

Отправлено 11 March 2014 - 17:53

Видимо все таки нет этой возможности, ответ такой прислали

Для Вашего аккаунта установлен и используется кеширующий модуль eaccelerator, eAccelerator сохраняет скомпилированные PHP скрипты в разделяемой памяти и запускает код непосредственно из нее, что позволяет существенно оптимизировать работу используемых скриптов.

 

 

Еще варианты решения проблемы есть ? 


  • 0

#10 Cheren-dow

Cheren-dow

Отправлено 11 March 2014 - 17:55

Den_mrt, может быть стоит сменить тарифный план на хостинге? 


  • 0
Изображение
 





Темы с аналогичным тегами хостинг, map, api, google map

Click to return to top of page in style!