Обнаружение Причины tcp rcvpruned?

[1128989] Здесь я подробно опишу [1129570] свой комментарий [1129571] с моим фактическим предложением. [12168] Мое основное предположение заключается в том, что вы не хотите устанавливать марионетки на клиентские узлы из-за их чистого номера. Если вы не можете "дотронуться до них" из-за проблемы с разрешениями, то я сомневаюсь, что вы вообще можете нажать конфигурацию, будь то через марионетку или любым другим способом.[12169]Вы можете настроить [1129572]ssh[1129573] на вход на машину без пароля, используя [1129574]ssh-keygen[1129575] так:[12170]Убедитесь, что парольная фраза пуста (поэтому скрипту, использующему эту [1129576]ssh[1129577], пароль не понадобится). [12171]В качестве второго шага, вам нужно скопировать открытый ключ на все хосты:[12172], где я предполагаю, что [1129578]hostnames_file[1129579] имеет по одному имени хоста в строке со списком всех хостов, которые вы хотите скопировать. [12173] Скорее всего, этот скрипт запросит ваш пароль столько раз, сколько хостов есть, но это произойдет только один раз, когда вы настраиваете ключи. [12174]Если ваш [1129580]пользователь [1129581] имеет свой домашний каталог, совместно используемый всеми клиентами (например, через NFS), вы можете сделать это: [12175]Теперь вы должны настроить доступ без пароля [1129582]sudo[1129583] к команде [1129584]apt-get[1129585] (или [1129586]yum[1129587] или [1129588]pacman[1129589], или любому другому выбранному вами пакетному менеджеру) для пользователя [1129590]ssh[1129591], для которого вы только что настроили доступ без пароля [1129592]ssh[1129593]. Теперь все так же просто, как:[12176]Обратите внимание, что вы можете использовать этот метод как рудиментарную форму управления конфигурацией также[1129594]*[1129595], но он гораздо более хрупкий, чем использование Puppet, Chef или аналогичного. [12177]Ссылки[12178]Вход в SSH без пароля[12179]3 Шаги по выполнению входа в SSH без пароля с использованием ssh-keygen & ssh-copy-id[12180](*)[1129601] Просто замените [1129602]sudo apt-get install puppet[1129603] на любую команду(ы), которую вы хотите запустить на всех ваших узлах.[1129015].
2
29.04.2014, 17:15
1 ответ

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

Хотя есть много способов связи между сервером и клиентом, выбор, сделанный X (независимо от преимуществ, упомянутых другими), не лишний: можно подключиться к серверу X на другом компьютере и открыть окна на рабочем столе (или на другом сотрудничающем рабочем столе). Это было очень часто во времена разработки X, когда многие университеты и предприятия имели сервер Unix и множество «X терминалов,» которые разговаривали с ним. С помощью протокола связи, готового к использованию в Интернете, X можно легко использовать внутри хостов или между ними.

X была первой средой графического интерфейса пользователя, которая могла прозрачно отображать окна с другой машины, в соответствии с историей UNIX как многопользовательской среды, а не ОС для одного пользователя на одном компьютере. Многие функции UNIX кажутся избыточными, если вы единственный человек, который когда-либо может взаимодействовать (физически или удаленно) с вашим компьютером.

-121--17734-

Загрузчик FreeBSD не очень хорош при многозагрузке. В этом случае он, вероятно, перезаписал загрузчик Ubuntu ( grub2 ) своим.

Возможным решением будет загрузка в FreeBSD и настройка его для установки загрузчика на том фрагменте (разделе), где установлен FreeBSD (в отличие от MBR).

Затем загрузите Ubuntu CD/DVD и попытайтесь переустановить grub2 в MBR. Он должен распознавать загрузчик FreeBSD на фрагменте и добавлять запись для загрузки FreeBSD, а также Ubuntu и Windows.

Примечание: у меня нет FreeBSD, чтобы проверить это.

-121--140032-

TCP RcvPruned MIB увеличивается непосредственно перед выходом ядра из функции tcp _ prune _ queue () , что приводит к отбрасыванию пакетов.

Перед этим ядро попытается свернуть данные в буферах сокетов (сжать данные вместе и сбросить накладные расходы). Данные сначала будут отсечены из очереди вне заказа, а затем из обычной очереди в заказе.

Это означает, что разъемы находятся под давлением памяти, вероятно, их буферы недостаточно велики.

Вы сказали выше:

 net.ipv4.tcp _ rmem =  183936 245248 367872

Максимум нигде недостаточно велик. Увеличьте его до 10 раз, чтобы дать комнате для увеличения памяти сокетов по мере необходимости. Увеличьте net.core.rmem _ max так же, как используется в учете окон TCP.

Я не уверен, как вы рассчитали размер буфера, но если вы балансируете нагрузку большого количества малого пакетного трафика (например, HTTP-запросов), то большая часть вашего использования буфера будет накладной.

В зависимости от того, какое ядро вы запускаете, для этого существует другая учетная запись.«Старый» метод делает некоторые неточные предположения, но оказывается довольно простительным, «новый» метод учитывает точно и требует, чтобы буферы были немного больше, чем предыдущие.

Набор исправлений, который изменяет это, фокусируется на вычислениях skb- > truesize и IIRC был применен где-то между 3,0 ядра и 3,10.

Вы также хотите проверить значение net.ipv4.tcp _ mem и убедиться, что вы не ограничиваете общий объем памяти, которую разрешено использовать TCP. Эта настройка измеряется на страницах , а не в байтах. Лично я просто делаю все ценности такими большими, что их никогда не ударят. Приобретите дополнительную память по мере необходимости.

1
27.01.2020, 22:22

Теги

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