URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6376
[ Назад ]

Исходное сообщение
"PHP не справляется с большой нагрузкой"

Отправлено sEpt0r , 09-Июн-09 18:03 
Добрый день.

Есть сервер с большой нагрузкой, примерно 8 000 000 показов в день.

При показе страницы, через раз выдается сообщение для сохранения файла index.php (файл пустой).

При нагрузке примерно в 1 000 000 всё работало нормально. А после перевода остального трафика началась эта проблема.

База данных MySQL.
Процессор не загружен. Апач и MySQL оптимизированы под такую нагрузку.
Памяти 4Gb, при такой нагрузке используется примерно 3Gb.

Грешу на PHP, т.к. больше не знаю на что.

Подскажите в чём может быть дело.
Если нужна ещё какая информация, могу предоставить.

Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"PHP не справляется с большой нагрузкой"
Отправлено Pahanivo , 10-Июн-09 10:32 
версии? (пых мускул апач)
как подцеплен пых? (модуль цги)
ОСЬ то вообще какая?


"PHP не справляется с большой нагрузкой"
Отправлено sEpt0r , 10-Июн-09 15:04 
Со вчерашней проблемой разобрались. Дело было в апаче в 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
===============================


"PHP не справляется с большой нагрузкой"
Отправлено Pahanivo , 10-Июн-09 15:10 
>ОСь: CentOS 5.2 32bit
>mysql: стоял 5.0.45 обновили до 5.1.35
>apache: 2.2.3-22
>php: 5.2.9-1
>php установлен как CGI

1) CGI - фтопку!!! поставте модулем!
2) мускул - как вариант на отдельныю машину
3) в качестве фронт-енд - чтото типа ngix


"PHP не справляется с большой нагрузкой"
Отправлено Giga , 10-Июн-09 12:50 
У меня примерно 1.000.000 хитов, до 2 бывает. Сервер квад корэ пень 4х2,4 + 4 Гб память. Ось CentOS 64bit. К Апачу прикрутил акселераторы nginx и eAccelerator. Load average прыгает в рамках 1-2, процессор загружен на 10-20%, память правда выбрана почти вся и бывает в Swap немного уходит. А так все летает.