<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<div>
<div><br>
</div>
<div><br>
</div>
<div>Quien mierda sos??</div>
<div><br>
</div>
<div id="x_composer_signature">
<div dir="auto" style="font-size:85%; color:#575757">Enviado desde mi smartphone Samsung Galaxy.</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>-------- Mensaje original --------</div>
<div>De: Max Romanov <max.romanov@nginx.com> </div>
<div>Fecha: 14/3/22 5:01 (GMT-03:00) </div>
<div>Para: unit@nginx.org </div>
<div>Asunto: Re: unit зависает с php 7.4 (nginx+unit+nextcloud на debian 11) </div>
<div><br>
</div>
</div>
<font size="2"><span style="font-size:11pt;">
<div class="PlainText">Здравствуйте, Иван.<br>
<br>
Похоже, что процессу 'unit: router' (pid 244884) не хватает файловых дескрипторов для принятия очередного клиентского соединения.<br>
<br>
Чтобы убедиться, что это так, можно посчитать кол-во используемых дескрипторов (напр. 'lsof -p 244884') и сравнить со значениями в строке 'Max open files' в /proc/244884/limits .<br>
<br>
Если кол-во дескрипторов маленькое на фоне 'Resource temporarily unavailable', то предположение неверное.<br>
Если кол-во дескрипторов большое, но существенно отличается от количества подключений, надо искать утечку дескрипторов в роутере (возможно, ошибка в Unit).<br>
<br>
Если кол-во используемых дескрипторов близко к предельному и (примерно) соответствует количеству клиентских соединений, то необходимо увеличить лимит.<br>
<br>
> <br>
> Мы уже выставили ему NoFiles = 10000, пробуем поставить 100000 и перенести сессии php в редис, может что-то еще не учли?<br>
> <br>
<br>
<br>
Направление похожее, но я не понял _где_ это выставлено. Повиляло ли это на /proc/<router pid>/limits ? Если нет - значит не та (или не там) настройка.<br>
<br>
—<br>
Max<br>
<br>
> On 11 Mar 2022, at 11:58, Иван <nginx@kinetiksoft.com> wrote:<br>
> <br>
> Здравствуйте!<br>
> <br>
> <br>
> Перевели nextcloud (php) на unit. Периодически unit полностью перестаёт отвечать на запросы. В этот момент запрос к любому урлу с application nextcloud , обламывается по timeout. В логах nginx соотвественно<br>
> <br>
> 2022/03/11 10:48:37 [error] 156145#156145: *43083 upstream timed out (110: Connection timed out) while reading response header from upstre<br>
> am, client: 46.55, server: c.com, request: "GET /thecloud/ocs/v2.php/apps/activity/api/v2/activity?since=1883732&li<br>
> mit=50&format=json HTTP/1.1", upstream: "<a href=""></a>http://127.0.0.1:8000/thecloud/ocs/v2.php/apps/activity/api/v2/activity?since=1883732&limit=50&fo<br>
> rmat=json", host: "c.com"<br>
> <br>
> В логах unit вообще смущает<br>
> <br>
>> grep -c 'Resource temporarily unavailable' /var/log/unit.log<br>
>> 94542<br>
> <br>
> Мы уже выставили ему NoFiles = 10000, пробуем поставить 100000 и перенести сессии php в редис, может что-то еще не учли?<br>
> <br>
> Дебаг-логи юнита включили, но ничего соотвествующего проблеме не увидели. Например, приведенное выше сообщение в логах nginx - первое за сегодня. Кусок лога unit за это время:<br>
> <br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 h1p body rest: 0<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 http application handler<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 rpc: stream #23217 registered<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 mp 7F0600049E30 retain: 2<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 pthread_mutex_lock(55E27D377000) enter<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 pthread_mutex_unlock(55E27D377000) exit<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 mp 7F0600049E30 retain: 3<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 request 1345 bytes shm buffer<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 mp 7F0600000BB0 retain: 25<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 pthread_mutex_lock(55E27D377138) enter<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 pthread_mutex_unlock(55E27D377138) exit<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 outgoing mmap buf allocation: 7F0600028600 [7F06091F5000,16384] 244884->0,0,24<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 fields_count=13<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0xE6EB, 0, 4, 7F0600049171 : 21 7F0600049177<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0x7F29, 0, 15, 7F060004918E : 12 7F060004919F<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0x25AB, 0, 10, 7F06000491AD : 5 7F06000491B9<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0x1EA0, 0, 14, 7F06000491C0 : 3 7F06000491D0<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0xA841, 0, 5, 7F06000491D5 : 1 7F06000491DC<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0xB29A, 0, 13, 7F06000491DF : 42 7F06000491EE<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0x0220, 0, 10, 7F060004921A : 145 7F0600049226<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0xD871, 0, 6, 7F06000492B9 : 3 7F06000492C1<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0x5F7D, 0, 12, 7F06000492C6 : 23 7F06000492D4<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0xEDFF, 0, 12, 7F06000492ED : 36 7F06000492FB<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0x23F2, 0, 6, 7F0600049321 : 277 7F0600049329<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0x9683, 0, 15, 7F0600049440 : 13 7F0600049451<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 add field 0xEA97, 0, 15, 7F0600049460 : 10 7F0600049471<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 about to send 1345 bytes buffer to app process port 12<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 *22759 queue is not empty<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 timer found minimum: 313989843±50:313748980<br>
>> 2022/03/11 10:48:36.250 [debug] 244884#244901 epoll_wait(36) timeout:240863<br>
>> 2022/03/11 10:48:37.114 [debug] 244884#244901 epoll_wait(36): 1<br>
>> 2022/03/11 10:48:37.114 [debug] 244884#244901 *22733 epoll: fd:17 ev:2001 d:7F060001D390 rd:2 wr:0<br>
>> 2022/03/11 10:48:37.114 [debug] 244884#244901 timer expire minimum: 313989793:313749844<br>
>> 2022/03/11 10:48:37.114 [debug] 244884#244901 timer found minimum: 313989843±50:313749844<br>
>> 2022/03/11 10:48:37.114 [debug] 244884#244901 epoll_wait(36) timeout:239999<br>
>> 2022/03/11 10:48:37.146 [debug] 244884#244901 epoll_wait(36): 1<br>
>> 2022/03/11 10:48:37.146 [debug] 244884#244901 *22735 epoll: fd:19 ev:2001 d:7F06000029C0 rd:2 wr:0<br>
>> 2022/03/11 10:48:37.146 [debug] 244884#244901 timer expire minimum: 313989793:313749876<br>
>> 2022/03/11 10:48:37.146 [debug] 244884#244901 timer found minimum: 313989843±50:313749876<br>
>> 2022/03/11 10:48:37.146 [debug] 244884#244901 epoll_wait(36) timeout:239967<br>
>> 2022/03/11 10:48:37.190 [debug] 244884#244901 epoll_wait(36): 1<br>
>> 2022/03/11 10:48:37.190 [debug] 244884#244901 *22736 epoll: fd:20 ev:2001 d:7F060000F710 rd:2 wr:0<br>
>> 2022/03/11 10:48:37.190 [debug] 244884#244901 timer expire minimum: 313989793:313749920<br>
>> 2022/03/11 10:48:37.190 [debug] 244884#244901 timer found minimum: 313989843±50:313749920<br>
>> 2022/03/11 10:48:37.190 [debug] 244884#244901 epoll_wait(36) timeout:239923<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 epoll_wait(36): 1<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 epoll: fd:14 ev:0001 d:7F0600001430 rd:5 wr:0<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 timer expire minimum: 313989793:313756676<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 work queue: accept<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 accept4(14): 102<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 client: 127.0.0.1<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 malloc(168): 7F0600005F70<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 posix_memalign(16, 464): 7F060004B2E0<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 *22761 connections: 26<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 work queue: accept<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 accept4(14) (11: Resource temporarily unavailable)<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 work queue: read<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 *22760 http conn init<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 work queue: read<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 *22760 conn read fd:102 rdy:0 cl:0 er:0 bl:0<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 *22760 epoll 36 set event: fd:102 op:1 ev:80002001<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 *22760 timer add: 0±50 180000:313936676<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 *22760 timer change: 313936676±50:1<br>
>> 2022/03/11 10:48:43.946 [debug] 244884#244901 timers changes: 1<br>
> <br>
> Конфиг unit'а:<br>
> <br>
>> {<br>
>>     "settings": {<br>
>>         "http": {<br>
>>             "max_body_size": 10737418240,<br>
>>             "body_read_timeout": 3600<br>
>>         }<br>
>>     },<br>
>>     "listeners": {<br>
>>         "127.0.0.1:8000": {<br>
>>             "pass": "routes",<br>
>>         "client_ip": {<br>
>>             "header": "X-Forwarded-For",<br>
>>             "source": [<br>
>>             "127.0.0.1"<br>
>>             ]<br>
>>         }<br>
>>         }<br>
>>     },<br>
>> <br>
>>     "routes": [<br>
>>         {<br>
>>             "match": {<br>
>>                 "uri": [<br>
>>                     "/thecloud/core/ajax/update.php*",<br>
>>                     "/thecloud/cron.php*",<br>
>>                     "/thecloud/index.php*",<br>
>>                     "/thecloud/ocm-provider*.php*",<br>
>>                     "/thecloud/ocs-provider*.php*",<br>
>>                     "/thecloud/ocs/v1.php*",<br>
>>                     "/thecloud/ocs/v2.php*",<br>
>>                     "/thecloud/public.php*",<br>
>>                     "/thecloud/remote.php*",<br>
>>                                         "/thecloud/status.php*",<br>
>>                     "/thecloud/updater*.php*"<br>
>>                 ]<br>
>>             },<br>
>> <br>
>>             "action": {<br>
>>                 "pass": "applications/nextcloud/direct"<br>
>>             }<br>
>>         },<br>
>>         {<br>
>>             "match": {<br>
>>                 "uri": "/thecloud/ocm-provider*"<br>
>>             },<br>
>> <br>
>>             "action": {<br>
>>                 "pass": "applications/nextcloud/ocm"<br>
>>             }<br>
>>         },<br>
>>         {<br>
>>             "match": {<br>
>>                 "uri": "/thecloud/ocs-provider*"<br>
>>             },<br>
>> <br>
>>             "action": {<br>
>>                 "pass": "applications/nextcloud/ocs"<br>
>>             }<br>
>>         },<br>
>>         {<br>
>>             "match": {<br>
>>                 "uri": "/thecloud/updater*"<br>
>>             },<br>
>> <br>
>>             "action": {<br>
>>                 "pass": "applications/nextcloud/updater"<br>
>>             }<br>
>>         },<br>
>>         {<br>
>>             "match": {<br>
>>                 "uri": "/thecloud/*"<br>
>>             },<br>
>>             "action": {<br>
>>                 "share": "/usr/local$uri",<br>
>>                 "fallback": {<br>
>>                     "pass": "applications/nextcloud/index"<br>
>>                 }<br>
>>             }<br>
>>         },<br>
>>         {<br>
>>             "action": {<br>
>>                 "return": 403<br>
>>             }<br>
>>         }<br>
>>     ],<br>
>> <br>
>>     "applications": {<br>
>>         "nextcloud": {<br>
>>             "user": "php-nextcloud",<br>
>>             "group": "php-nextcloud",<br>
>>             "limits": {<br>
>>                     "timeout": 300,<br>
>>                     "requests": 10000<br>
>>             },<br>
>>                 "processes": {<br>
>>                 "max": 20,<br>
>>                 "spare": 10,<br>
>>                 "idle_timeout": 300<br>
>>             },<br>
>>             "options": {<br>
>>                 "admin": {<br>
>>                     "memory_limit": "512M",<br>
>>                     "post_max_size": "10G",<br>
>>                     "upload_max_filesize": "10G",<br>
>>                     "max_execution_time": "3600",<br>
>>                     "max_input_time": "3600"<br>
>>                 }<br>
>>             },<br>
>>             "type": "php",<br>
>>             "targets": {<br>
>>                 "direct": {<br>
>>                     "root": "/usr/local/"<br>
>>                 },<br>
>> <br>
>>                 "index": {<br>
>>                     "root": "/usr/local/nextcloud/",<br>
>>                     "script": "index.php"<br>
>>                 },<br>
>> <br>
>>                 "ocm": {<br>
>>                     "root": "/usr/local/nextcloud/ocm-provider/",<br>
>>                     "script": "index.php"<br>
>>                 },<br>
>> <br>
>>                 "ocs": {<br>
>>                     "root": "/usr/local/nextcloud/ocs-provider/",<br>
>>                     "script": "index.php"<br>
>>                 },<br>
>> <br>
>>                 "updater": {<br>
>>                     "root": "/usr/local/nextcloud/updater/",<br>
>>                     "script": "index.php"<br>
>>                 }<br>
>>             }<br>
>>         }<br>
>>     }<br>
>> }<br>
> <br>
> Заранее спасибо!<br>
> <br>
> <br>
> С уважением, Иван.<br>
> <br>
> _______________________________________________<br>
> unit mailing list -- unit@nginx.org<br>
> To unsubscribe send an email to unit-leave@nginx.org<br>
<br>
_______________________________________________<br>
unit mailing list -- unit@nginx.org<br>
To unsubscribe send an email to unit-leave@nginx.org<br>
</div>
</span></font>
</body>
</html>