Перейти к публикации

Миллион новостей и нагрузка


Рекомендованные сообщения

Подскажите, хочу сделать крупный портал, где в будущем будет около миллиона новостей. Скажите DLE выдержит нагрузку и какие характеристики сервера лучше смотреть самые топовые для нагрузки?

Ссылка на сообщение
Поделиться на других сайтах
39 минут назад, almaz.izguzhin сказал:

Скажите DLE выдержит

DLE выдержит все что выдержит ваш сервер.

39 минут назад, almaz.izguzhin сказал:

и какие характеристики сервера лучше смотреть самые топовые для нагрузки?

Никакие. Сначала создайте этот контент, и получите нужную аудиторию. Потому как все зависит от того какой будет контент и каковы настройки серверного ПО и какова посещаемость. Вы можете одной некорректной настройкой сервера положить его с посещаемостью 10 человек и десятью новостями, а может при правильной настройки серверного ПО держать и миллион обращений в сутки. Все зависит от вас.

Амбиции это хорошо, но когда вы подойдете к этому у вас уже будет опыт и понимание этого вопроса и вы не будете задавать подобных вопросов, потому как будете уже знать что универсальных ответов на эти ваши заданные вопросы попросту не существует в природе. Все зависит от всех составляющих вместе. Люди при начинании почему то думают, что они взяли сервер, и построили Youtube империю, так не бывает ))) Начните с малого, DLE долго позволяет расти, далеко не каждый движок позволяет расти с минимальными требованиями к ресурсам, а DLE запросто, но это не значит что нужно сразу хватать что то мощное или знать универсальный ответ что нужно брать. Берите малое и растите до ваших обьемов и амбиций, когда вырастите, будете уже знать какие именно железо вам нужно.

Ссылка на сообщение
Поделиться на других сайтах

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

На данный момент у меня больше миллиона новостей при 30-60к посетителей в сутки и никаких проблем нет. Хотя до этого пришлось очень многое пережить и изменить в DLE. 

Ссылка на сообщение
Поделиться на других сайтах
26.12.2022 в 10:39, Хоббит сказал:

На данный момент у меня больше миллиона новостей при 30-60к посетителей в сутки и никаких проблем нет. Хотя до этого пришлось очень многое пережить и изменить в DLE

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

Что пробовал: новости во всех разделах выводятся только за последний год (а это меньше 10% от всего их количества), остальное можно найти только через поиск, убрал из запросов к базе то, что не выводится на страницах, сам поиск ищет только по выбранной категории и по умолчанию тоже за короткий период, с возможностью выбора большего периода, но без возможности поиска по всем разделам сразу. Если выводить все новости за все время, то время открытия страницы начинает превышать 10 секунд.

Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, Xhhunt сказал:

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

Что пробовал: новости во всех разделах выводятся только за последний год (а это меньше 10% от всего их количества), остальное можно найти только через поиск, убрал из запросов к базе то, что не выводится на страницах, сам поиск ищет только по выбранной категории и по умолчанию тоже за короткий период, с возможностью выбора большего периода, но без возможности поиска по всем разделам сразу. Если выводить все новости за все время, то время открытия страницы начинает превышать 10 секунд.

А вы искали причину проблемы? Что именно вы считаете проблемой, медленную загрузку страницы? 

Для начала стоит выяснить в чем проблема, используйте плагины типа Power-Log и далее решения. 

Вот например проблема с похожими симптомами: https://dle-faq.ru/faq/questmysql/26908-kak-optimizirovat-zapros-mysql.html

Также стоит написать технические характеристики типа: версия DLE, сервер, какая версия php (Apache or Litespeed?) и так далее. 

Нужно больше данных, тут вряд ли есть ясновидящие :) 

Ссылка на сообщение
Поделиться на других сайтах

Замеченная проблема - большое время выполнения запросов при постраничном выводе коротких новостей за все время (что и определяет скорость загрузки страницы, если не использовать озвученные выше костыли). При этом новостей пока более чем в 10 раз меньше чем у вас и посещаемость не более 10-20к в сутки.

Хостинг РТК
Операционная система:     Linux 4.9.0-0.bpo.3-amd64
Apache    2.4.10
MySQL    10.2.36+maria~jessie
PHP    7.4.29 (alt) Режим работы CGI
Оперативная память    1024 MiB
Процессорное время не ограничено (ед.)
Update-запросов к MySQL    300000 (на MySQL-пользователя в час)
Запросов к MySQL    600000 (на MySQL-пользователя в час)
MySQL-соединений    300000 (на MySQL-пользователя в час)

DLE 15.0
Общее количество новостей:     88 124
Всего комментариев:     289 570
Размер базы данных:     1.24 Gb
Тип кэширования: Файловый кэш
Включено: предварительная модерация комментариев, возможность публиковать новости на еще не наступившую дату, поддержка мультикатегорий, возможность вывода всей информации об авторе публикации, счетчик просмотров, возможность управления рекламными материалами, Gzip сжатие JS файлов, поддержка регистрации и авторизации пользователей, поддержка комментариев на сайте для опубликованных новостей, показ новостей находящихся в субкатегориях, при просмотре родительских категорий.

Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, Xhhunt сказал:

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

Очевидно эти функции сильно снижает производительность движка, особенно "возможность публиковать новости на еще не наступившую дату": если не ошибаюсь то данная функция постоянно сканирует всю таблицу dle_post на наличие approve=1. То есть при каждом переходе на следующую страницу запрос сканирует 88 124 новостей что в БД. 

Я решил отключить данные функции учитывая будущее, и убрал approve=1 и main_allow, отключил мультикатегорий. 

Вот решения: https://sandev.pro/web/141-optimizaciya-dle.html

Ещё полезно: https://sandev.pro/web/141-optimizaciya-dle.html#comment-id-2329

Я вроде выше кинул ссылку похожую. 

Мой сервер начал падать когда я набрал 300к новостей и 20к посетителей, DLE 12. Но сервер падал из-за огромного количества кэша и Apache, у вас же просто медленные страницы пагинации. 

Изменено пользователем Хоббит
Ссылка на сообщение
Поделиться на других сайтах

Ещё, в тему, отключите "перекрестные ссылки", потребляют гигантское кол-во ресурсов. Реализовано в ДЛЕ очень неудачно. При собирании 1 мил. Страниц будет несколько миллионов запросов, т.к. при каждом выводе будет проверять на их наличие. Я знаю, что разработчики знают о колоссальной нагрузке при включении функции. Переписывался с ними. Будем надеятся, что изменят алгоритм "... ссылок"

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, МВИА сказал:

Ещё, в тему, отключите "перекрестные ссылки", потребляют гигантское кол-во ресурсов. Реализовано в ДЛЕ очень неудачно. При собирании 1 мил. Страниц будет несколько миллионов запросов, т.к. при каждом выводе будет проверять на их наличие. Я знаю, что разработчики знают о колоссальной нагрузке при включении функции. Переписывался с ними. Будем надеятся, что изменят алгоритм "... ссылок"

О чем вы, этот модуль ещё с древних времён не изменилось, разработчик поленился даже поправить css checkbox не говоря уже про алгоритмы. 

Я помню как писал про этот модуль ещё 3-4 года назад, да и модулем пользуется от силы 1% пользователей. 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, МВИА сказал:

Ещё, в тему, отключите "перекрестные ссылки", потребляют гигантское кол-во ресурсов. Реализовано в ДЛЕ очень неудачно. При собирании 1 мил. Страниц будет несколько миллионов запросов, т.к. при каждом выводе будет проверять на их наличие. Я знаю, что разработчики знают о колоссальной нагрузке при включении функции. Переписывался с ними. Будем надеятся, что изменят алгоритм "... ссылок"

Вы корне не правы и не знаете как он работает. И я сейчас не про нагрузку, а про то как он работает. Никакого миллиона запроса к БД нет и быть не может, запрос всегда только один!!!! и не на страницу а вообще. Но данный модуль несет нагрузку, но на CPU во время парсинга этих страниц, если у вас миллион ссылок, то нужно найти на странице миллион вхождений используя регулярные выражения, время занимают регулярные выражения поиска по странице вашего миллиона вхождений, а не какие то запросы к БД, к БД вообще запросов нет. И работает это так не потому что алгоритм плохой, он в принципе быть не может другим в этом его сама суть, чтобы заменять быстро что то в реальном времени. Он по своей сути не может быстро работать  иначе. Этот модуль нужен для быстрой замены в реальном времени малого количества контента. А когда начинают применять модуль для чего он не предназначен, и запихивать в него миллионы записей, то начинается то что начинается. Для того о чем вы написали в DLE предусмотрен совершенно иной механизм, называется фильтр слов, где разбор идет не в режиме онлайн, а только при добавлении и редактировании контента, и который специально заточен под работу с большими обьемами данных.

33 минуты назад, Хоббит сказал:

О чем вы, этот модуль ещё с древних времён не изменилось, разработчик поленился даже поправить css checkbox не говоря уже про алгоритмы. 

Нужно просто применять ту или иную возможность исключительно в тех целях, в которых они предназначены. А не пытаться придумать свои цели, а потом обвинять алгоритмы, и ждать годами их изменения. Они не могут измениться, потому как потеряют свою возможность, и не может быть парсинг в реальном времени быстрее. Физически не может. А для парсинга не в реальном времени совершенно другие модули и разделы для этого есть. И даже не один, выше я написал только один из альтернативных возможных. А то люди любят применять возможность не в тему, потом писать что то не так и медленно, и ждут каких то изменений, которых никогда не будет, только потому что это так не потому что алгоритм плохой, а проектирование вами вашего сайта было плохое и возможность применяется не та, которую правильнее было. Хотел бы я посмотреть как вы сделаете миллион регулярных выражений на странице "мегабыстро" в реальном времени. Ключевое слово именно в реальном времени, потому как модуль для замены в реальном времени. Не в реальном времени у нас есть уже другой модуль. А здесь нужно именно в реальном времени обязательно и регулярные выражения обязательны. Раз мы такие ленивые, а вы не ленивый. А то какие то странные рассуждения: хочу миллион регулярок на страницу в реальном времени, а это долго, потому что разработчики ленивые, нет, это долго потому что миллион регулярок в реальном времени это долго и тяжело для процессора по сути, или вот у меня база на полтора гига, а вот на хостинге где я выделил всего гиг оперативы под все, включая все серверное ПО и OS, как то слабо ворочает этим обьемом информации. Нет вы серьезно? Хотите чтобы из воздуха все бралось? Так не бывает, нужно реально смотреть на вещи. И оптимизировать нужно то что действительно оптимизируется, а не то, что где то в головах и мечтах.

30.12.2022 в 12:15, Хоббит сказал:

Вот например проблема с похожими симптомами: https://dle-faq.ru/faq/questmysql/26908-kak-optimizirovat-zapros-mysql.html

Интересная тема, как то я ее пропустил из вида раньше. Вот это реально оптимизируется в DLE, и относится уже к реальной оптимизации. Тема очень хорошая. Нужно будет тщательно изучит вопрос пагинации кратких новостей, и думаю в будущем точно еще больше оптимизируем для работы на очень больших БД.

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, celsoft сказал:

вообще. Но данный модуль несет нагрузку, но на CPU во время парсинга этих страниц, если у вас миллион ссылок, то нужно найти на странице миллион вхождений используя регулярные выражения, время занимают регулярные выражения поиска по странице вашего миллиона вхождений, а не какие то запросы к БД, к БД вообще запросов нет. И работает это так не потому что алгоритм плохой, он в принципе быть не может другим в этом его сама суть, чтобы заменять быстро что то в реальном времени. Он по своей сути не может быстро работать  иначе. Этот модуль нужен для быстрой замены в реальном времени малого количества контента. А когда начинают применять модуль для чего он не предназначен, и запихивать в него миллионы записей, то начинается то что начинается.

Тогда, почему этого нет в документации? Там написано, что только создаёт нагрузку, а про маленькие новости - ни слова. Вообще, документация написана как "для врагов". Писал много раз что надо подробнее, с примерами. Даже писал о опечатке, до сих пор не исправлена. Хорошая документация, лучший способ рекламы и привлечения новых пользователей. Здесь постоянно поднимаются темы о неудобстве тех.поддержки и т.п., потенциальный покупатель смотрит на это, и уходит. Я читаю лекции , в которой упоминаются разные смс, ДЛЕ стоит как самая недружественная к пользователю. Несколько тыс. В год слушателей, ни разу не слышал, что бы поставили у себя. Выбирают другие...

Ссылка на сообщение
Поделиться на других сайтах

Только сейчас смотрел документацию на сайте разработчика, есть "Фильтр по IP, Логину или E-Mail", но фильтр слов не упоминается. Если это не описано в документации, то как узнать что это для этого, а это для другого?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, МВИА сказал:

Тогда, почему этого нет в документации? Там написано, что только создаёт нагрузку, а про маленькие новости - ни слова.

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

1 час назад, МВИА сказал:

Только сейчас смотрел документацию на сайте разработчика, есть "Фильтр по IP, Логину или E-Mail", но фильтр слов не упоминается

Админпанель на русском языке, там есть раздел, там все указано и написано. Документация описывает создание сайта, а не пользование сайтом. А это относится к пользованию уже построенным сайтом. А если что то непонятно, то всегда можно спросить тех. поддержку, она всегда поможет и обьяснит.

1 час назад, МВИА сказал:

Здесь постоянно поднимаются темы о неудобстве тех.поддержки

Где именно. Не совсем понятно о каком неудобстве тех. поддержки идет речь. Поясните. Тех. поддержка отказывает только тогда, когда от нее просят то что она не предоставляет. Например когда просят написать какой либо код на заказ. Все что относится к тех. поддержке оказывается всегда и вовремя. Даже сейчас, вам обьясняют что работает и как и что вы делаете неправильно. Это и есть работа тех. поддержки. Работа тех. поддержки оказывать помощь, например когда что то не работает в самом скрипте, или например указывание на неверное проектирование своего сайта это тоже поддержка. Просто некоторые путают тех. поддержку с работой по персональным хотениям и желаниям и представляют что это персональный программист, а также иногда проявляют потребительский экстремизм под видом "недружественная поддержка, не сделали то что я прошу". К поддержке нужно ведь обращаться именно по вопросам поддержки. А не по вопросам, исправьте сторонний модуль, напишите персональный для меня код, настройте за меня сервер и т.д.

1 час назад, МВИА сказал:

Даже писал о опечатке, до сих пор не исправлена.

Уточните здесь о какой именно идет речь, я внесу в лист исправлений.

Ссылка на сообщение
Поделиться на других сайтах

https://mega.nz/file/j45DDaJL#I0JuQqSZ0-_FHfk25tnJhwaWttTEShoH9Cz_W9MHBgQ

https://mega.nz/file/uoBzmJ6a#XyjydpCJLjlnACNPWUC-his2jkT8BTiXXYBe2ceNUjw

 

Вот скриншоты не исправленной опечатки и сообщение о ней в тех.поддержку. По остальным пунктам отвечу позднее.

Дата скриншота, вчера

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, МВИА сказал:

https://mega.nz/file/j45DDaJL#I0JuQqSZ0-_FHfk25tnJhwaWttTEShoH9Cz_W9MHBgQ

https://mega.nz/file/uoBzmJ6a#XyjydpCJLjlnACNPWUC-his2jkT8BTiXXYBe2ceNUjw

 

Вот скриншоты не исправленной опечатки и сообщение о ней в тех.поддержку. По остальным пунктам отвечу позднее.

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

Я то подумал, что вы что то давно сообщали, а это не вносится несколько версий и не устраняется ошибка. 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...