Добрый день.Есть сервер с большой нагрузкой, примерно 8 000 000 показов в день.
При показе страницы, через раз выдается сообщение для сохранения файла index.php (файл пустой).
При нагрузке примерно в 1 000 000 всё работало нормально. А после перевода остального трафика началась эта проблема.
База данных MySQL.
Процессор не загружен. Апач и MySQL оптимизированы под такую нагрузку.
Памяти 4Gb, при такой нагрузке используется примерно 3Gb.Грешу на PHP, т.к. больше не знаю на что.
Подскажите в чём может быть дело.
Если нужна ещё какая информация, могу предоставить.Заранее спасибо.
версии? (пых мускул апач)
как подцеплен пых? (модуль цги)
ОСЬ то вообще какая?
Со вчерашней проблемой разобрались. Дело было в апаче в 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
memlocksafe-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
===============================
>ОСь: CentOS 5.2 32bit
>mysql: стоял 5.0.45 обновили до 5.1.35
>apache: 2.2.3-22
>php: 5.2.9-1
>php установлен как CGI1) CGI - фтопку!!! поставте модулем!
2) мускул - как вариант на отдельныю машину
3) в качестве фронт-енд - чтото типа ngix
У меня примерно 1.000.000 хитов, до 2 бывает. Сервер квад корэ пень 4х2,4 + 4 Гб память. Ось CentOS 64bit. К Апачу прикрутил акселераторы nginx и eAccelerator. Load average прыгает в рамках 1-2, процессор загружен на 10-20%, память правда выбрана почти вся и бывает в Swap немного уходит. А так все летает.