Большая БД на DLE не работает

12
sunca
На сайте с 05.12.2010
Offline
77
1599

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

В итоге при отключении тегов, календрей, похожих новостей и всему что способствует нагрузке сайт не работает. Ну как не работает... спустя 120 секунд " 504 Gateway Time-out", при переключении на apache ситуация такая же только длится дольше.

Объём БД почти 1ГБ, количество постов ~235 000

Конфиг железа - VDS 2Ghz, 2 ГБ ОЗУ, SSD

При этом остальные сайты с меньшими объемами летают на ура.

Настройки:

my.cnf

# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer_size = 2M
max_allowed_packet = 4M
table_open_cache = 4
sort_buffer_size = 512K
read_buffer_size = 2M
read_rnd_buffer_size = 2M
net_buffer_length = 64K
thread_stack = 128K

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 16M
sort_buffer_size = 16M

httpd.conf

Timeout 120
KeepAlive Off
MaxKeepAliveRequests 0
KeepAliveTimeout 15

# prefork MPM
StartServers 10
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 5000

# worker MPM
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
relizeoff
На сайте с 13.01.2011
Offline
9
#1

Для начала попробовать утилитку mysqltuner для оптимизации работы с БД

sunca
На сайте с 05.12.2010
Offline
77
#2
relizeoff:
Для начала попробовать утилитку mysqltuner для оптимизации работы с БД

Спасибо большое, очень помогли, коротко и дельно оказалось.

Прогнал скриптом, выяснил где чего мало и подправил конфиг. Теперь все ещё шустрее работает, но единственная БД самая большая что я назвал осталась при старой проблеме, хотя рядом лежат несколько по 300-500мб БД, но до 100 000 постов и всё ок.

Вырезка из листа процессов mysql:

процесс появляется при попытке войти в корень сайта и висит около 400-500 сек, далее сбрасывается, но ngix разумеется уже давно отдал 504 Gateway Time-out


ID Пользователь Хост База данных Команда Время Состояние SQL-запрос
2398 sunca_sound localhost sunca_soundmp3 Query 371 Sending data SELECT ct.id, ct.alt_name, ct.name, ct.posi, ct.parentid, (
SELECT count( * )
FROM dle_post ps
WHERE ps
pikasso
На сайте с 27.01.2008
Offline
150
#3

Чем переносили базу ?

sunca
На сайте с 05.12.2010
Offline
77
#4
pikasso:
Чем переносили базу ?

дампером...

pikasso
На сайте с 27.01.2008
Offline
150
#5

Попробуйте перенести при помощи Sypex Dumper.

sunca
На сайте с 05.12.2010
Offline
77
#6
pikasso:
Попробуйте перенести при помощи Sypex Dumper.

Я в общем-то его и имел в виду :)

Garik666
На сайте с 20.09.2008
Offline
66
#7

а при чём тут дампер???

база у ТС уже перенесена, просто нагрузку большую делает

)
sunca
На сайте с 05.12.2010
Offline
77
#8

ну сохранил дампером и так же восстановил... тут как бы всё ровно )

siv1987
На сайте с 02.04.2009
Offline
427
#9


SELECT ct.id, ct.alt_name, ct.name, ct.posi, ct.parentid, (
SELECT count( * )
FROM dle_post ps
WHERE ps

Не помню такого запроса в дле..

Может быть следует начать с логов медленных запросов?

Great-Antique
На сайте с 21.08.2010
Offline
16
#10

Пишите в скайп. Возможно смогу помоч с оптимизацией запросов

Пишу небольшие PHP-скрипты бесплатно. Главное, чтобы интересно было. Блог о PHP-разработке (http://den.girnyk.com) и не только.
12

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