LINUX.ORG.RU
ФорумAdmin

Повисают процессы Апача

 


0

1

Centos 6.5 64 Установка была с базовым набором битрикс окружения 4 версии

Apache prefork

mod status показывает периодически зависающие процессы апача в режиме «W» Sending Reply. Они набивают пул и висят бесконечно и потом до рестарта апача ничего не поможет

5-5 20628 0/9/197 W 1.59 31992 0 0.0 0.03 2.33 213.176.233.98 localhost GET / HTTP/1.0

6-5 19373 0/1/106 W 0.28 36184 0 0.0 0.00 0.77 37.146.209.216 localhost GET /catalog/?q=%D1%81%D

посмотрел через gdb что творится в процессах получил 2 варианта ошибки

1. висит в function flock from /lib64/libc.so.6

2. висит в from curl_socket_ready to function poll from /lib64/libc.so.6

1. lkls\lsof потыкал ничего интересного в заблокированных файлах не увидел. в какую сторону копать ? из-за чего может повисать процесс на файловой блокировке?

2. сайт активно ходит на другой сайт по апи получает данные. конект до сайта нестабильный packet loss 0-40%. но почему повисает намертво процесс, а не отваливается по таймауту...

админы добрые поможите ) в какую сторону копать?

а нужно было использовать ми-24

anonymous ()
Ответ на: комментарий от drunkpanda

В curl таймаут поменьше и радоваться жизни. А вообще все верно сказали, что надо с сетью проблему решать. Делайте доп. площадку откуда апи стабильно доступно, а вы площадку видите нормально.

Еще можно по таймауту килять.

PS. если возможно то осильте кеширование данных от API.

alfss ()

допустим что для решения с удалённой площадкой можно попытаться поиграть с таймаутами, хотя что-то мне подсказывает что не поможет. попробую

но запросы зависают и локальные (flock) GET / GET /about GET /bitrix/tools/public_session.php?sessid=b87346125e58c374b7c и тд..

где что могло погнуться?...

drunkpanda ()

тем более что таймауты стоят и у апача, и у пхп. на одном из них всё равно бы убился процесс давно.

drunkpanda ()
Ответ на: комментарий от alfss

собсно curl выглядит так и таймауты как выяснилось тут я выставлял давным давно. сие не помогло никоим образом

<?php function curl($url, $postFields = null) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,10); curl_setopt($ch, CURLOPT_TIMEOUT, 120); //timeout in seconds curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_STDERR, 'php://output'); if(strlen($url) > 5 && strtolower(substr($url,0,5)) == "https" ) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); }

drunkpanda ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.