“Пропуская отдельный debuginfo для …” при выполнении gcore

(для подведения итогов моих комментариев к OP)

Трехстороннее квитирование, к которому они обращаются, является частью установления соединения TCP, рассматриваемая опция не имеет отношение конкретно к этому. Также обратите внимание, что обмен данными не является частью трехэтапного квитирования, это просто создает соединение TCP в открытом/установленном состоянии.

Относительно существования этой опции это не традиционное поведение сокета, обычно поток обработчика сокетов разбужен, когда соединение принято (который является все еще после того, как трехэтапное квитирование завершается), и для некоторых протоколов действие запускается здесь (например, сервер SMTP отправляет 220 строк приветствия), но для HTTP первое сообщение в разговоре является веб-браузером, отправляющим ПОЛУЧАТЬ/POST/И Т.Д. строку, и пока этого не происходит, сервер HTTP не имеет никакого интереса к соединению (кроме таймаута его), таким образом будя Процесс HTTP, когда сокет принимает, завершается, расточительное действие, поскольку процесс сразу заснет, снова ожидая необходимых данных.

В то время как существует, конечно, аргумент, что пробуждение неактивных процессов может сделать их 'готовыми' к последующей обработке (я конкретно не забываю будить терминалы входа в систему на очень старых машинах и иметь их пыхтение в от подкачки), но можно также утверждать, что любая машина, которая выгрузила упомянутый процесс, уже требует у своих ресурсов и делает дальнейшие ненужные требования, мог бы в целом уменьшить производительность системы - даже если очевидная производительность отдельного потока улучшается (который это также не может, чрезвычайно занятая машина иметь узкими местами на диске IO, который замедлил бы другие вещи, если бы Вы загрузили, и если его настолько занятый, непосредственный сон мог бы подкачать его назад). Это, кажется, азартная игра, и в конечном счете 'жадная' азартная игра не обязательно окупается на занятой машине и конечно вызывает дополнительную ненужную работу над машиной, которой уже загрузили процесс - Ваш подход оптимизирует для машины с набором памяти большой емкости процессов, которые главным образом бездействуют, и свопинг одной дремоты для другого не является никаким грандиозным предприятием, однако машина с набором памяти большой емкости активных процессов пострадает от дополнительного IO, и любая машина, которая не является ограниченной памятью, страдает, любая зависящая от ЦП машина окажется в худшем положении.

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

Для специфического ответа на вопрос опция выгодна на всех конфигурациях, не к уровню, кроме которого Вы когда-либо, вероятно, замечали бы под экстремальной нагрузкой Трафика HTTP, но это - теоретически "правильный" способ сделать это. Это - опция, потому что не весь Unix (даже весь Linux) ароматы имеют ту возможность, и таким образом для мобильности это может быть настроено, чтобы не быть inclided.

3
25.07.2014, 23:49
1 ответ

Компиляторы могут быть настроены на генерацию дополнительной информации с исполняемым файлом и/или библиотеками, облегчающими отладку. С помощью этой дополнительной информации ваш отладчик может показать, среди прочего, исходный код и имена переменных.

К сожалению, эта отладочная информация занимает много места в системе. Учитывая, что они почти никогда не используются (если все работает по плану), то они просто избыточны и занимают место на диске.

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

Вы используете SuSE и так как я не использую его, я не могу прокомментировать, как установить эти пакеты на этот дистрибутив, за исключением того, что я считаю, что вы включили репозиторий и использовали zypper для установки того же самого пакета с debuginfo в его названии.

На Fedora вы включаете репозиторий и используете команду debuginfo-install для установки этого пакета debuginfo.

Ваша команда gcore создает дамп ядра процесса 56058. Установив пакеты debuginfo, можно добавить гораздо более полезную отладочную информацию в дамп ядра, поэтому предлагается их установить.

.
3
27.01.2020, 21:23

Теги

Похожие вопросы