Оптимизация VDS

trojka
На сайте с 27.02.2007
Offline
73
768

Добрый день.

Взял на пробу себе VDS (300Mhz, 128 ram, Fedora 5)

Поднял на нем

named

apache 2.2

php 5 with Zend optimizator

dovecot

sendmail

Поднял на нем сайты из них 4-5 сайтов с 1000-1500 хостов и еще немного мелочи.

Вроде работает нормально, правда пару раз не понятно от чего умирал named и sendmail.

Но вот заметил в пик загрузки происходит такая ситуация, в mysql подвисает какой-то запрос и из-за него начинают скапливаться другие, не обработанные, в итоге штук 10 запросов выполняться по 10-20 сек. Потом его попускает и он со всеми запросами разбирается. Такое повторяется периодически.

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

П.С, mysql 5 собрал без поддержки innodb, скрипты проаптимизировал, создал правильные индексы.

И еще вопрос, прочитал про nginx и возникло желание попробовать его поставить как front-end к apache. На VDS такой конфигурации, не приведет ли это только к ухудшению работы?

подПись - всем подПисям подПись
bbon
На сайте с 01.04.2006
Offline
127
#1

если доступ к базе только с локального сервера, то желательно в /etc/my.cnf раскомментировать строчку skip-networking (к базе скрипты в этом случае должны коннектиться через 127.0.0.1, разумеется)

и еще, mysql запускать с ключом --skip-name-resolve (при падениях днс могут быть симптомы, похожие на описанные)

trojka
На сайте с 27.02.2007
Offline
73
#2

Спасибо, сейчас попробую.

Кстати заметил что в таких затыках, в основном статус у запроса Sending to net

Кстати вот такой my.cnf, может тут еще что-то подкрутить?

[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

log-bin
#log_slow_queries

skip-locking
skip-innodb
skip-bdb
safe-user-create
skip-name-resolve
skip-log-warnings
safe-show-database

interactive_timeout=5
max_user_connections=30

key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

А вот как выглядит сама ситуация с затыком: http://rip.kiev.ua/1.html

Andreyka
На сайте с 19.02.2005
Offline
822
#3
trojka:

Подскажите как можно подкрутить мускул, и в чем может быть проблема?
П.С, mysql 5 собрал без поддержки innodb, скрипты проаптимизировал, создал правильные индексы.

И еще вопрос, прочитал про nginx и возникло желание попробовать его поставить как front-end к apache. На VDS такой конфигурации, не приведет ли это только к ухудшению работы?

По мискулю - поставьте писать его long queries. Если их нет - значит плохо собрали просто

По nginx - отлично себя ведет, главное чтоб хватило сетевых ресурсхов (коннектов к tcp) :)

Не стоит плодить сущности без необходимости
bbon
На сайте с 01.04.2006
Offline
127
#4
trojka:
Кстати вот такой my.cnf, может тут еще что-то подкрутить?

Вот мой кусочек из VDS с 96МБ гарантированного озу

[mysqld]

default-character-set=cp1251
default-collation=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

query_cache_size=1M
set-variable = query_cache_type=1
set-variable = log-slow-queries

port = 3306
socket = /tmp/mysql.sock
skip-locking
#key_buffer = 16K
#key_buffer = 3M
key_buffer = 4M
max_allowed_packet = 1M
table_cache = 4
#sort_buffer_size = 64K
#sort_buffer_size = 1M
sort_buffer_size = 2M
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K

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

trojka
На сайте с 27.02.2007
Offline
73
#5

2 bbon:

Поставил ваши значения. Вроде стало намного шустрее работать! Спасибо!

И еще я повыбрасывал все лишние модули из апача, убрал всякие иконки, языки итд.. и теперь памяти на 10-15 метров больше!

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