Вопрос про нагрузку и БД

12
V
На сайте с 10.04.2008
Offline
121
1069

Добрый день, есть движок ДЛЕ. там БД MySQLi.

Сервер: 2хE5520 2.26Ghz + 16гб озу.

размер БД 1,52 Gb

Общее количество новостей: 144063

Всего комментариев: 1422334

В общем стала такая конфигурация жутко грузить сервер при малейшей небольшой нагрузке, например - выше 2000 человек онлайн за 15 мин (по статистике ЛИ) при этом где то 9342 connections on 80 port (apache) и 1771 connections on 85 port (nginx).

- уже отключаю многие функции, типа фиксирования новостей, вывода похожих новостей.. - все это плохо спасает.

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

D
На сайте с 28.06.2008
Offline
1108
#1

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

Ибо сервер сильный - должно все быстро работать

V
На сайте с 10.04.2008
Offline
121
#2

Я где то читал, что не столько от размера зависит нагрузка сколько от кол записей, и что например при записях более 1000000 нагрузка начинает расти в геометрической прогрессии - это так?

например у нас 1.5 миллиона комментариев.

Mad_Man
На сайте с 10.11.2008
Offline
162
#3
Dram:
заказывайте у админов анализ скриптов, пусть ищут детально - что грузит....

Ибо сервер сильный - должно все быстро работать

Проблема скорее не в анализе неведомого кода, а в конфигах самого сервера. У ТС'a может вполне себе стоять апач, мускул и Nginx с дефолтными настройками.

vikdo:
Я где то читал, что не столько от размера зависит нагрузка сколько от кол записей, и что например при записях более 1000000 нагрузка начинает расти в геометрической прогрессии - это так?

например у нас 1.5 миллиона комментариев.

Вопрос в том, сколько из этих комментариев обрабатываются за один запрос и сколько записей в самой таблице.

V
На сайте с 10.04.2008
Offline
121
#4
Mad_Man:
Вопрос скорее не в анализе неведомого кода, а в конфигах самого сервера. У ТС'a может вполне себе стоять апач, мускул и Nginx с дефолтными конфигами.

Настраивал там все нам один человек.

Mad_Man:
Вопрос в том, сколько из этих комментариев обрабатываются за один запрос.

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

Mad_Man
На сайте с 10.11.2008
Offline
162
#5
vikdo:
Настраивал там все нам один человек.

Отличный ответ, но всё же интересно было бы посмотреть на конфиг my.cnf и на режим, в котором работает апач. Ну и nginx.conf & httpd.conf для полной радости.

forest25
На сайте с 12.09.2009
Offline
67
#6

Может выложите конфиги апача и энджинкса? Также для начала можно в логи посмотреть.

VPS 512MB 20GB SSD KVM - 5$ (http://u.hmdw.me/digitalocean) | ИМХО о хостингах (http://u.hmdw.me/hosting)
V
На сайте с 10.04.2008
Offline
121
#7

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

I
На сайте с 23.12.2010
Offline
25
#8
vikdo:
Я где то читал, что не столько от размера зависит нагрузка сколько от кол записей, и что например при записях более 1000000 нагрузка начинает расти в геометрической прогрессии - это так?

например у нас 1.5 миллиона комментариев.

если есть индекс, то зависимость не геометрическая а порядка log2(N)

V
На сайте с 10.04.2008
Offline
121
#9
iopiop:
если есть индекс, то зависимость не геометрическая а порядка log2(N)

наверно есть..

просто например автор движка ДЛЕ как то писал:

"для MySQL считается критическим приближение к миллиону записей в таблице, при данном количестве даже при очень легкий запросах, производительность существенно снижается, причем в геометрической прогрессии"

вот я и грешу на комменты

V
На сайте с 09.02.2011
Offline
38
#10

Проверьте список запросов из логов mysql-slow-query, может там есть жуткие запросы. Проверьте улучшения которые были сделаны в основном движке, в первоначальном варианте на такой машине должно работать нормально, но вот апдейты кода которые были сделаны могут иметь проблемы. Может валяются запросы типа select * from dle_post которые предназначены для подсчета количества постов :) (такое бывает) Посмотрите где можно проставить limit в запросе, возможно не оценены реальные размеры ответов базы, ожидаеться например одна строка а на самом деле возращаеться пол базы.

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

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий