MTU интерфейса отличается от указанного в выводе «ip link show»

Хорошая стоимость или доли ЦП?

Обратите внимание, что в настоящее время хорошие значения могут быть не столь актуальны »система -wide », из-за автоматической группировки задач, особенно при использовании systemd . См. этот ответ для получения более подробной информации.

Разница между потоками и процессами

Важный вопрос по Linux, потому что документация увековечивает сомнения (например, в отношении потоков, не имеющих собственного PID).

Примечание: этот ответ точно объясняет потоки Linux.

Вкратце: ядро ​​обрабатывает только «выполняемые объекты», то есть то, что может быть запущено и запланировано . С точки зрения ядра эти объекты называются процессами. Поток - это просто процесс, который разделяет (по крайней мере) пространство памяти и обработчики сигналов с другим.

Каждый такой процесс имеет уникальный для всей системы идентификатор: PID (идентификатор процесса). Для так называемых потоков его иногда называют TID (Thread ID), но с точки зрения системного администратора (и ядра!) TID и PID - это одно и то же (они имеют одно и то же пространство имен).

В результате вы можете переименовывать каждый «поток» по отдельности, потому что у них есть свой собственный PID 1 .

Рекурсивный поиск всех PID для renice

Нам нужно получить PID всех процессов («нормальный» или «поток»), которые являются потомками (дочерними или в группе потоков) для - внимательный процесс. Это должно быть рекурсивным (учитывая детей детей).

Ответ Антона Леонтьева дает подсказку для этого: все имена папок в / proc / $ PID / task / являются PID потока, содержащего дочерний список потенциальных файлов детские процессы.

Однако в нем отсутствует рекурсивность, поэтому вот быстрый и грязный сценарий оболочки, чтобы найти их:

#!/bin/sh
[ "$#" -eq 1 -a -d "/proc/$1/task" ] || exit 1

PID_LIST=
findpids() {
        for pid in /proc/$1/task/* ; do
                pid="$(basename "$pid")"
                PID_LIST="$PID_LIST$pid "
                for cpid in $(cat /proc/$1/task/$pid/children) ; do
                        findpids $cpid
                done
        done
}

findpids $1
echo $PID_LIST

Если PID процесса 1234 - это тот, который вы хотите рекурсивно улучшить, теперь вы можете сделать:

renice -n 15 -p $(/path/to/findchildren.sh 1234)

1 Обратите внимание, что для соответствия POSIX вызов getpid (2) в потоке не даст вам общесистемный уникальный идентификатор (PID) этого исполняемого объекта, а скорее PID основной процесс в «группе потоков». Вместо этого вам нужно будет вызвать gettid (2) . См. этот ответ для получения дополнительной информации.

2
03.02.2017, 16:51
1 ответ

Это разница между MTU (максимальная единица передачи) и MRU (максимальная единица приема).

Обычно ожидается, что MTU (и MRU) будет одинаковым для всех членов одного широковещательного домена, и поэтому разница не имеет значения, но при неверно сконфигурированной настройке это имеет значение иметь значение.

Я ожидал, что PC2 незаметно отбросит этот кадр, когда он превысит свой MTU.

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

Однако ping -M do -s 4183 -c 1 10.11.12.2 не получает ответа.

Похоже, этот единственный дополнительный байт помещает его поверх своего MRU.Поскольку вы не настроили какой-либо MRU явно, этот размер может быть аппаратным ограничением или результатом настройки внутренних буферов оборудования сетевого интерфейса, когда для MTU установлено значение 2000.

Настройте ваши MTU правильно в одном широковещательном домене и вы не столкнетесь с этой проблемой. Некоторые протоколы маршрутизации, такие как IS-IS, намеренно дополняют свои сообщения Hello до MTU, чтобы убедиться, что все другие динамики в широковещательном домене действительно могут получить этот пакет, тем самым предотвращая возникновение смежности в случае неправильная конфигурация, что позволит вам быстрее обнаружить проблему.

4
27.01.2020, 21:59

Теги

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