Со вчерашней проблемой разобрались. Дело было в апаче в worker.c. Перенастроили апач на prefork и увеличили ServerLimit с 5000 до 10000 и MaxClients до 9500. Вроде заработало.Но когда был пик нагрузки, сервер всё равно упал.
Пришли к выводу, что не справляется MySQL. Он начинает юзать своп, и когда своп кончается, всё падает.
Запретили юзать своп и обновили mysql. Сегодня посмотрим как поведёт себя сервер, но от предложенных идей не откажусь. Реально, замучились с этим сервером уже.
спасибо.
ОСь: CentOS 5.2 32bit
mysql: стоял 5.0.45 обновили до 5.1.35
apache: 2.2.3-22
php: 5.2.9-1
php установлен как CGI
вот конфиг mysql:
===============================
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
memlock
safe-show-database
old-passwords = 1
#
max_connections = 10000
max_user_connections = 9000
#min_memory_needed = global_buffers + (thread_buffers * max_connections)
#global buffers
key_buffer_size = 1024M
#thread buffers
myisam_sort_buffer_size = 1M
read_rnd_buffer_size = 2M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
#
#cache
query_cache_size = 0
table_cache = 2000
thread_cache_size = 128
#
wait_timeout = 20
connect_timeout = 10
tmp_table_size = 128M
max_heap_table_size = 512M
max_allowed_packet = 16M
max_connect_errors = 10
thread_concurrency = 16
concurrent_insert = 2
table_lock_wait_timeout = 30
max_write_lock_count = 16
long_query_time = 5
skip-name-resolve
skip-locking
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[myisamchk]
key_buffer = 96M
sort_buffer = 96M
read_buffer = 64M
write_buffer = 64M
===============================