As a precaution I've lowered the memory usage on MySQL. Below is the
my.cnf currently used (minus comments). I reduced the key buffer and
InnoDB buffer pool each from 1G to 768M, and the max connections from
650 (which allowed for generous attempts at double connections if every
apache process were running the wiki and had a broken persistent
connection, a new connection on top, and maybe some extra) to 300.
(Apache is now set to allow a max of 120 connections on larousse and
150 on pliny; this leaves only a little bit extra if all those
connections get used).
The maximum possible memory usage should be roughly 4MB*300 connections
plus 768M plus another 768M? Under 3 gigs, in theory, of the 4G
geoffrin has. Under the previous configuration a complete stall-out
which used the full memory maxima would have gone into swap which it
may not handle well; this may be responsible for a signal 11 mysqld
crash a few hours ago and the more recent hang.
Unfortunately neither time I had a vmstat sitting around.
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 768M
max_allowed_packet = 1M
table_cache = 1000
sort_buffer_size = 2M
read_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_size = 32M
thread_concurrency = 8
set-variable = max_connections=300
log-bin
set-variable = ft_min_word_len=2
server-id = 1
tmpdir = /var/tmp/
innodb_buffer_pool_size = 768M
innodb_log_file_size = 128M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
-- brion vibber (brion @
pobox.com)