Рейтинг:0

100% загрузка ЦП из-за iowait, вызванная Nginx, не решается включением sendfile и отключением directio

флаг us

Я запускаю веб-сервис, который выполняет некоторые основные операции по обработке изображений.

Веб-сервер сначала принимает загружаемые изображения от пользователей и временно сохраняет их. Затем внутренний сервер загружает изображение через HTTP-запрос на получение и выполняет фактическую обработку. Затем он отправляется обратно на веб-сервер. Затем пользователь загружает изображения. Обработанное изображение обычно значительно больше исходного изображения.

Веб-служба иногда сталкивается с пиками iowait при высокой загрузке ЦП, и сервер выдает ошибку тайм-аута недоступности запроса. Высокий iowait от nginx.

Решение, данное для подобных проблем, рекомендует включение отправки файла и выключение направления. я тоже отключил буфер и request_buffers так как я читал, что это также может быть источником проблемы. Хотя это, кажется, несколько уменьшает возникновение проблемы, это все еще происходит время от времени, и я понятия не имею, почему.

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

сервер {
     если ($http_user_agent ~ ^$){
        вернуть 503;
    }

    if ($http_user_agent ~* "Mozilla/4.0\(совместимый;\MSIE\6.0;\Windows\NT\5.1;\SV1;\.NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\ )) {
        вернуть 503;
    }


    имя_сервера [отредактировано: сайт];

    access_log /var/log/[отредактировано: файл журнала];
    error_log /var/log/[отредактировано: файл журнала];

    слушать 0.0.0.0:443 ssl; 
    ssl_certificate [отредактировано: адрес сертификата]
    ssl_certificate_key [отредактировано: ключ сертификата]
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot

    страница_ошибки 502 /custom_502.html;
    местоположение = /custom_502.html {
        корень /usr/share/nginx/html;
        внутренний;
        }
    местоположение = /error_502.png {
        корень /usr/share/nginx/html;
    }
    client_max_body_size 300M;
    proxy_request_buffering выключен;


    место расположения / {
                # пересылать запросы приложений на сервер gunicorn
                proxy_pass http://localhost:8001;
                прокси_перенаправление выключено;
                proxy_set_header Хост $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        местоположение/статический {
                
                proxy_max_temp_file_size 0;
                направление выключено;
                отправить файл включен;
                псевдоним [отредактировано: местоположение сайта]/static;
                истекает через 5 дней;
        }

}


сервер {
      если ($http_user_agent ~ ^$){
        вернуть 503;
    }

    if ($http_user_agent ~* "Mozilla/4.0\(совместимый;\MSIE\6.0;\Windows\NT\5.1;\SV1;\.NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\ )) {
        вернуть 503;
    }

  если ($ host = [отредактировано: адрес]) {
        вернуть 301 https://$host$request_uri;


    слушать 0.0.0.0:80;
    имя_сервера [отредактировано: сайт]; 
    вернуть 404;     
    client_max_body_size 300M;

}

                                                       

Ответить или комментировать

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