Веб сервер стоит в паре с веб связь с бд по tcp 3306. На этом вебе данная конструкция.
Размер бд 1Gb.
Ram 32
винты нормальные
При 1000 обращений в секунду к бд база начинала отваливаться. Резко в какой то момент возрастало количество тредов до 900-1000 и бд уходила в дедлок. Скриптом не убивалась. Только через kill.
Бд ставилась вот так:
Код: Выделить всё
make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes
Wcpu процесса доходил до 600
Последние примерные параметры на моменты крэша.
my.cnf
Код: Выделить всё
[mysqld]
log=/var/log/mysql/mysql.log
#log-warnings=/var/log/mysql/mysql_warnings.log
skip-name-resolve
thread_concurrency = 8
default-character-set=utf8
default-collation=utf8_general_ci
collation-server=utf8_general_ci
skip-character-set-client-handshake
default-storage-engine=INNODB
log-slow-queries = /var/log/mysql/slow.log
max_connections = 900
max_user_connections = 900
max_allowed_packet=128k
query-cache-type=1
query-cache-size=256M
table_cache=1024
flush_time = 120
innodb_buffer_pool_size = 4Gb
#innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 4
innodb_file_per_table
#innodb_flush_method=O_DIRECT
thread_cache_size = 28
join_buffer_size = 1024M
sort_buffer_size = 512M
key_buffer_size = 512M
wait_timeout = 10
max_write_lock_count = 0
read_rnd_buffer_size=512M
Данная опция как то странно работает
wait_timeout = 15
http://forums.freebsd.org/showthread.ph ... l+deadlock
В данные момент стоит CentOS и вроде справляется.
Мысли какие то есть у кого?