Забыли пароль?
Запросите новый здесь.

Автор темы: back1919
ID темы: 2945
Информация:
Тема содержит 21 сообщения, была просмотрена 14704 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Ошибки, баги
 Распечатать тему
Превышена нагрузка на MySQL
back1919
Люди добрые, спасайте! Хостер ругается и обкладывает штрафами за превышение лимитов нагрузок. Вообще не понимаю о чем речь и что с этим делать. Ниже логи нагрузок:

Скачать исходники  Код

Количество: 22949
Нагрузка: 1175
SELECT Count(comment_id) FROM fusion_comments WHERE comment_type=SSS AND comment_item_id=NNN




Скачать исходники  Код

Количество: 20420
Нагрузка: 1476
SELECT tcm.comment_id, tcm.comment_name, tcm.comment_message, tcm.comment_datestamp, tcm.comment_otziv, tcu.user_name, tcu.user_status FROM fusion_comments tcm LEFT JOIN fusion_users tcu ON tcm.comment_name=tcu.user_id WHERE comment_item_id=NNN AND comment_type=SSS AND comment_hidden=NNN AND comment_public=NNN ORDER BY comment_datestamp DESC LIMIT NNN,NNN




Скачать исходники  Код
Количество: 20376
Нагрузка: 1012
SELECT Count(comment_id) FROM fusion_comments WHERE comment_item_id=NNN AND comment_type=SSS AND comment_hidden=NNN AND comment_public=NNN





Спасибо!
 
Web
ovas
Поменяй время хранения мусора в папке .cagefs на сервере с 48 часов на 6 часов в maincore.php
Строчка 60
// Session lifetime. After this time stored data will be seen as 'garbage' and cleaned up by the garbage collection process.
ini_set('session.gc_maxlifetime', 172800); // 48 hours
// Session cookie life time
ini_set('session.cookie_lifetime', 172800); // 48 hours

ini_set('session.gc_maxlifetime', 21600); // 6 hours
// Session cookie life time
ini_set('session.cookie_lifetime', 21600); // 6 hours

На девятке так, тоже такое было.
 
Web
Polarfox
Отключить комментарии?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
back1919
ovas, сейчас попробую,отпишусь!
Polarfox - я сразу обрубил комментарии, ничего не поменялось =(

Объединено 22.01.2018 12:38:
Ovas,
В файле maincore.php нет таких строчек =( Я даже специально исходную версию движка скачал и проверил - нет такого(

ovas написал:

Поменяй время хранения мусора в папке .cagefs на сервере с 48 часов на 6 часов в maincore.php
Строчка 60
// Session lifetime. After this time stored data will be seen as 'garbage' and cleaned up by the garbage collection process.
ini_set('session.gc_maxlifetime', 172800); // 48 hours
// Session cookie life time
ini_set('session.cookie_lifetime', 172800); // 48 hours

ini_set('session.gc_maxlifetime', 21600); // 6 hours
// Session cookie life time
ini_set('session.cookie_lifetime', 21600); // 6 hours

На девятке так, тоже такое было.

Изменил(а) back1919, 22.01.2018 12:38
Правда и отзывы про институты России и университеты страны.http://bestvuz.ru/
 
Web
ovas
Плохо смотрел. В семёрке 7.03 это строка 100
Изменил(а) ovas, 22.01.2018 14:07
 
Web
Rush
Мне всегда нравилось как шареды измеряют нагрузку в сферических конях в вакууме. Нагрузка: 1175 - это 1175 чего?
Верняк - валить на впс.
 
Web
Alex
мне как то хостер предъявил превышение лимита нагрузки на бд. и отрубил сайт

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

а нагрузка по их графикам как была так и осталась.
linkme.ufanet.ru/images/f150c441a9489b7a9714e6b423dc967a.jpg

Рома - это не халявный хостинг, 4 680 руб в год плачу, никогда не пользуюсь шарой
 
Web
back1919
Ovas, у меня 7.02.03, обновиться не смогу - слишком много переделанного в движке. Ни у кого больше нет вариантов что делать?)
Правда и отзывы про институты России и университеты страны.http://bestvuz.ru/
 
Web
ovas
Ни у кого больше нет вариантов что делать?

Смените хостинг, душат вас московские упыриag
 
Web
back1919
У меня хостинг за 11тыс - у него и так лимиты огромные, а сайт явно долбят боты или роботы, что же делать...
Правда и отзывы про институты России и университеты страны.http://bestvuz.ru/
 
Web
ovas
back1919 написал:

У меня хостинг за 11тыс - у него и так лимиты огромные, а сайт явно долбят боты или роботы, что же делать...

У меня хостинг за 33 руб- лимит ограничен 256 мб, хватет его , сайт сам весит 124 мб +БД+ услуги+мусор=147 мб

За 11 тысяч и с лимитами огромными, это же Вы лоторею выиграли , а ботов и роботов я у Вас заберу
 
Web
Rush
если 11к в месяц - то это цена неплохого дедика)

попробуй добавить два составных индекса в таблице fusion_comments
1-ый по полям comment_type и comment_item_id
2-ой по полям comment_item_id, comment_type, comment_hidden, comment_public
причем именно в таком порядке как они идут в запросе, это должно решить проблему с count запросами. с запросом который с джоином можно добавить индекс по колонке comment_name

Загрузить источник  GeSHi: MySQL
  1.  
  2. CREATE INDEX index_1 ON fusion_comments (comment_type, comment_item_id);
  3. CREATE INDEX index_2 ON fusion_comments (comment_item_id, comment_type, comment_hidden, comment_public);
  4. CREATE INDEX index_3 ON fusion_comments (comment_name);
  5.  
Добавлено за 0.009 секунд, используя GeSHi 1.0.8.10


Объединено 25.01.2018 16:53:
Ну так что Дима, помогло?
Изменил(а) Rush, 25.01.2018 14:53
 
Web
SchreiBear
back1919, а всё по тому что пф пре каждом обновленнии страницы запрос к бд делает и вчитывает всё по новому целиком.. а должно быть по другому.. если нет не каких обновлений зачем считывать?

посмотри как LiveStreet CMS решили эту проблему ... просто и гениально

всё дело в устаревшем напроч шаблонизаторе
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Vveb--ws
Rush а что дают эти индексы ? а то я настолько не знаю MySQL
 
Web
Rush
Индексы ускоряют выборку и сортировку https://ruhighload.com/post/Работа+с+индексами+в+MySQL

Не знаю как сделано в livestreet, но шаблонизатор не должен иметь никакого отношения к получению или хранению данных, это как бы bad practice
 
Web
SchreiBear
Rush, допустим на секунду..что тебя интересует профль пользователя Х .. первым делом.. идет зарос к БД ..выковырвается инфа занесённая пользователем...потом шаблонзатор формирует выводит всё на экран. Тут всё просто и понятно. А теперь скажи мне, что прозойдёт если ты через Энное время повторно зайдёш на профль пользователя Х? тоже самое что и описанно выше. Вся суть в том.. что если ИНФА пользователя Х в БД не обновлялась...а шаблонзатор уже хоть раз эту странцу сформеровал..то нет не какой нужды ещё раз лезьть в БД и выковырвать её.. ещё раз...
Изменил(а) SchreiBear, 24.02.2018 16:22
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Rush
Допустим на секунду, что есть какие-то общепринятые практики в программировании, паттерны и т.д., и шаблонизатор в данном мире всего лишь инструмент, который преобразует одну разметку в другую и может сохранять скомпилированный шаблон (но обычно без данных), а работой с данными, в том числе и кэшированием должны заниматься другие слои приложения, модели там всякие, репозитории и т.д. Иначе получается что-то из серии фьюжика, вордпресса и другого говнокода.
 
Web
ovas
Rush написал:

Допустим на секунду, что есть какие-то общепринятые практики в программировании, паттерны и т.д., и шаблонизатор в данном мире всего лишь инструмент, который преобразует одну разметку в другую и может сохранять скомпилированный шаблон (но обычно без данных), а работой с данными, в том числе и кэшированием должны заниматься другие слои приложения, модели там всякие, репозитории и т.д. Иначе получается что-то из серии фьюжика, вордпресса и другого говнокода.


Мудро сказал!!! agagbj
Изменил(а) ovas, 26.02.2018 14:32
 
Web
SchreiBear
Rush, вся идея и заключается в сохраненнем скомпилированном шаблоне и предатврашении лишних запросов к бд.
Класс отвечающий за подключение к бд пишет в файл profile_lastupdate.txt все изменения в таблицах бд с временем запроса - последнего изменения .

затем простая логическая цепочка, если страница профиля пользователя не разу не запрашивалась..читаем с бд пишем в файл время запроса, сохраненнем скомпилированный шаблон. При повторном запросе страницы, читаем из файла profile_lastupdate.txt , сверяем время последнего изменения и время сохраненния скомпилированного шаблона и если они идентичны... просто показываем скомпилированного шаблон в противном случии ,читаем с бд, пишем в файл время запроса.

объектно ориентированное программирование рулит.


представь что твой профиль в вк за последний год не разу не обновлялся, а каждый гость поситивший твой профиль это не нужные запросы к бд и компиляция шаблона, а на другой чаше весов ,открытие файла profile_lastupdate.txt и проверка тира if ($userid_16544 ==filemtime($шаблон)) then .... else ....
Изменил(а) SchreiBear, 31.03.2018 07:32
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Rush
Это не объектно ориентированное программирование, а объектно ориентированное говнокодирование в стиле вордпресса.

Я прекрасно понимаю что ты мне пытаешься объяснить, но по right way это делают по другому. Подстановка данных в шаблон занимает очень мало времени (php это же шаблонизатор в первую очередь ag), а хранить в кэше сырые данные намного дешевле, чем скомпилированную страницу, потому что она больше в размере. Ну и любой популярный фреймворк использует MVC, где V и M отвечают за разные вещи, модель за данные, view за вывод и представление
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,179)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)