Назад | Перейти на главную страницу

Как я могу распознать «проблему кормления с ложечки» на динамическом сервере веб-приложений?

«Проблема кормления с ложечки», как мне недавно объяснили, возникает, когда соединения с вашим сервером приложений связаны с передачей данных вашим клиентам через медленные сетевые соединения. Для меня это имеет смысл, и теперь я понимаю важность установки высокоскоростного прокси-сервера перед моими серверами приложений.

Мой вопрос: как первый человек, узнавший эту проблему, понял ее? Какие инструменты * nix и методы устранения неполадок помогли бы мне распознать эту проблему, если бы мне не объяснили ее?

В зависимости от архитектуры вы также можете увидеть низкую загрузку ЦП в пользовательском пространстве, но более высокую нагрузку из-за процессов, находящихся в очереди ожидания, блокирующих в подпрограммах сетевого ввода-вывода пространства ядра. Если вы используете систему пула потоков, часто запросы будут отклоняться или помещаться в очередь с низким использованием ЦП, и снова счетчики ожидания ввода-вывода будут высокими.

Иногда создание дополнительных потоков / рабочих процессов временно снимает проблему, пока ваша система не достигнет другой критической массы.

Честно говоря, это очень похоже на то, с чем вы столкнетесь, когда у вас будет медленный сервер NFS.

Если вы используете Apache, типичным признаком является наличие большого количества соединений в состоянии «W» при просмотре страницы состояния сервера.

Это не инструмент * nix, но я обнаружил, что зеркалирование портов управляемого коммутатора в сочетании с Wireshark или Wildpackets полезно. Используя фильтры, можно сравнить скорость одинаковых транзакций, которые выполняются быстро или нет.