Ограничено ли количество экземпляров / сессий одновременных plink (putty)?

1324
Ronan Thibaudau

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

Я почти уверен, что с реальной сетью все в порядке (это выделенная гигабитная сеть, больше ничего не работает, есть 200 устройств, и отправляется только «sudo reboot», так что это вряд ли генерирует трафик).

Есть ли какие-то ограничения, присущие ssh или putty, о которых я должен знать? Я хотел бы работать быстрее, чем делать это последовательно, но я прекрасно справляюсь с запуском его партиями разумного размера, я просто предпочитаю устанавливать размер пакета, зная, откуда он поступает, а не случайным образом при тестировании.

В настоящее время я делаю это:

для / F% i в (MYHOSTLIST.txt) запустите plink -pw MYPASSWORD MYLOGIN @% i sudo reboot

Это приводит к большому количеству ошибок после появления ожидаемой 200-битной команды Windows, удаляя запуск, он работает просто отлично, но требует бесконечной перезагрузки устройств в последовательности.

1
Объяснение понижения помогло бы мне улучшить вопрос Ronan Thibaudau 8 лет назад 0
Это поможет диагностировать вашу проблему: версию и архитектуру Windows, версию Putty, сведения об ошибках. beatcracker 8 лет назад 0
@beatcracker Я предполагал, что был известный предел (а не что-то конкретно для диагностики). Это на Windows 8.1 X64, последняя версия putty, я не могу запустить команду еще раз для точной детализации ошибки, однако она явно жаловалась на подключение и, поскольку аппаратное обеспечение было далеко от стресса, я пришел к ограничению программного обеспечения для одновременных подключений. Ronan Thibaudau 8 лет назад 0
Я не думаю, что существует ограничение на количество подключений, и в любом случае 200 одновременных подключений - это то, что ОС не может обработать. Я предполагаю, что это как-то связано с самим `plink` или с тем, как` cmd` запускает его. Вы можете попробовать заменить `plink` на ssh-клиент` cygwin` и посмотреть, что получится. beatcracker 8 лет назад 0
@beatcracker Да, я знаю, что это не ограничение ОС, мне интересно, ограничение SSH или замазка, но в любом случае я не смотрю ни на переключение инструментов, ни на обходной путь, я ищу фактическое точное число объяснение, откуда исходит ограничение (спецификация или реализация) для установки. Я действительно не хочу «пробовать вещи», я ищу формальное объяснение предела. Ronan Thibaudau 8 лет назад 0
Какую версию Windows вы используете? Серверная версия Windows менее ограничена. harrymc 8 лет назад 0
@harrymc, как уже упоминалось, всего 3 комментария выше, я использую Windows 8.1 X64. Я уверен, что это ограничение для замазки и / или ssh, а не для Windows Ronan Thibaudau 8 лет назад 0
Почему вы так уверены? harrymc 8 лет назад 0
@harrymc Я не "так уверен", поэтому, если у вас есть ответ с формальными числами с участием Windows, я весь слух. Как я сказал в награде, я ищу формальный ответ, который мог бы объяснить эти цифры как точные цифры, я не хочу их «угадывать». Если я ошибаюсь и лимит на стороне окон, это все равно, мне все еще нужно объяснение, чтобы определить максимальное число Ronan Thibaudau 8 лет назад 0
Числа, которые могут это объяснить, существуют, в основном это встроенные ограничения, направленные на замедление распространения вируса в больших сетях. Чтобы проверить, есть ли у вас доступ к физическому компьютеру с Windows Server, попробуйте проверить, получено ли у вас более 200 подключений (я предпочитаю дать содержательный ответ). harrymc 8 лет назад 0
@harrymc нет, у меня нет доступа к серверу WindowD в этой сети. Если вы ссылаетесь на лилиты, которые были на месте, чтобы предотвратить распространение червей, которые были сняты давно (видимо, я думаю?) Назад. Ronan Thibaudau 8 лет назад 0
До Vista некоторые из этих ограничений могли быть изменены через реестр, но теперь они встроены. Попробуйте загрузить Linux - если это работает, вы можете использовать дешевый компьютер Linux для отправки перезагрузки. harrymc 8 лет назад 0
@harrymc это не просто отправка перезагрузок и мне нужны окна в этом случае. Как я уже сказал, я не ищу обходной путь, я просто хочу выяснить точное число, как задокументировано (НЕ путем тестирования), и придерживаться партий этого числа Ronan Thibaudau 8 лет назад 0
Тестирование на Linux подтвердит тезис о том, что это встроенный предел Windows - пожалуйста, сделайте это. Если это проблема, то эти ограничения плохо документированы и, вероятно, не могут быть нарушены в версии клиента Windows. Если это не проблема, то нет смысла обсуждать это дальше. harrymc 8 лет назад 0
@harrymc У меня нет доступа к устройству в Linux, где я мог бы проверить это, но даже если бы я сделал putty для окон, так что вообще не помогло бы узнать, является ли это замазкой или пределом windows, так как windows требуется для обоих Ronan Thibaudau 8 лет назад 0
Не берите в голову мой последний комментарий, кажется, есть версия замазки для unix, отдельная загрузка источника, таким образом, может не быть той же самой основой кода. В любом случае я не могу проверить это на машине с Linux, есть только одна машина, с которой я могу проверить, и это Windows 8 x64 Ronan Thibaudau 8 лет назад 0
На вашем месте я бы не стал искать точный верхний предел, так как он может измениться без уведомления, вместо этого я бы искал гарантированный ** нижний ** предел, скажем, 100, и использовал бы его в качестве размера партии. Это эмпирически и так далее, но это сработает. harrymc 8 лет назад 0
@harrymc, но это не мой вопрос. Это, очевидно, то, что я уже делаю, но я действительно хочу выяснить, откуда взялся лимит, почему он есть, и если он случится, возможно, исправлю это сам. Как я уже сказал, мне не нужен обходной путь, я могу сделать это в одиночку просто отлично, я хочу получить четкое объяснение ограничения на основе формального числа Ronan Thibaudau 8 лет назад 0
Если это ограничение Windows, ваши шансы найти его невелики, в то время как вы можете отлаживать plink и putty. Я никогда не использовал plink, но довольно просто скачать исходные тексты версий plink и putty, которые вы используете, и использовать их для констант 200, 199 и 201. Это скажет вам, есть ли ограничение там и можно ли исправить. harrymc 8 лет назад 0
@harrymc Ограничения Windows хорошо задокументированы, и поиск этих констант вряд ли поможет, так как я запускаю исполняемый файл 200 раз, а не пробую 200 подключений с одного и того же, поэтому я не думаю, что есть какой-либо «жестко заданный» предел, но в большинство побочных эффектов (может быть диапазон входного порта или что-то). В любом случае, я не думаю, что есть какое-то простое решение, кроме как ждать, пока кто-то, у кого уже есть проблема или работает над источником замазки, найдет ответ. Ronan Thibaudau 8 лет назад 0
Ожидание не всегда лучшее решение. [Бог помогает тем, кто помогает себе] (https://en.wikipedia.org/wiki/God_helps_those_who_help_themself). harrymc 8 лет назад 0
@harrymc Я понимаю, что вы пытаетесь помочь, но на самом деле ничего из этого не помогает, я, кажется, не понимаю, но мне не нужна помощь в устранении ЛЮБОЙ проблемы, все, что у меня работает, работает отлично, это работало очень хорошо, прежде чем я отправил, я ищу формальное объяснение. Я закончил помогать себе прежде, чем я даже отправил вопрос. Я спрашиваю, как рассчитать ПИ, а вы продолжаете давать мне трюки, я уже измерил свой круг, я все еще хотел бы узнать, формально и с более научным подходом, как рассчитать ПИ, то же самое здесь, у меня есть обходные пути, Я ищу формальный ответ. Ronan Thibaudau 8 лет назад 0
В то время как иногда сообщение на этом форуме получает немедленный ответ, в других случаях постеру и авторам необходимо работать вместе, чтобы локализовать проблему, чаще всего, когда возможностей слишком много. Выше я отмечал, что знаю довольно много ограничений, с которыми вы можете столкнуться и хотели бы получить ваше сотрудничество. Но вы отказались, ожидая того редкого случая, когда кто-то сделал то же самое и уже проанализировал и решил проблему. Слушай, мне это не нравится, так что давайте закончим это обсуждение. harrymc 8 лет назад 0
@harrymc, где я отказался сотрудничать? Ronan Thibaudau 8 лет назад 0

1 ответ на вопрос

1
Stefan Seidel

Likely the same problem described here (including solution): https://stackoverflow.com/questions/17472389/how-to-increase-the-maximum-number-of-child-processes-that-can-be-spawned-by-a-w

I would, however, not recommend spawning that many processes, rather put the parallelism to the individual devices using

for /F %i in (MYHOSTLIST.txt) do plink -pw MYPASSWORD MYLOGIN@%i "nohup sudo reboot &>/dev/null &" 

which will still connect serially to all devices, but only to start off the reboot command and then immediately disconnect and move on to the next device.

Other option would be to use a proper operating system to control these Linux devices ;-)

Это совсем не похоже на мою проблему, даже указано, что проблема касается только служб Windows в ответе. Использование Linux для управления не вариант в этом случае. И перезагрузка - это только один пример скрипта, но мне нужно запускать произвольные команды для всех тех, в том числе для последовательных командных пакетов, где я хочу увидеть вывод, кроме того, даже для nohup все еще нужно время, чтобы подключиться к ним одна за другой вместо выполнения это параллельно. Появление большого количества процессов в компьютере без проблем, и операционная система прекрасно справляется с этим. Ronan Thibaudau 8 лет назад 0

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