"parallel" не может создавать никаких заданий - PullRequest
0 голосов
/ 09 июля 2020

У меня есть файл с именем commands.txt, в котором есть несколько команд, которые я хочу выполнить параллельно. Я хочу выполнить их на удаленном сервере с 16 ядрами и 32 процессорами. Я решил использовать для этого parallel.

Мне удалось запустить несколько тысяч строк commands.txt, но количество параллельных заданий продолжало уменьшаться снова и снова из-за «невозможности порождают новые процессы ». В конце концов, он не смог запустить никаких новых процессов и, следовательно, остановился. К счастью, я использовал параметр --joblog, чтобы сохранить свой прогресс. Точная команда, которую я использую: parallel --joblog joblog.txt --resume --progress --eta --bar < commands.txt >> errors.txt

Я думал, что если оставить на некоторое время, все устаревшие процессы будут убиты. Итак, через некоторое время я снова выполнил ту же команду. Я все еще получаю следующую ошибку:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
Academic tradition requires you to cite works you base your article on.
When using programs that use GNU Parallel to process data for publication
please cite:

  O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
  ;login: The USENIX Magazine, February 2011:42-47.

This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.

To silence this citation notice: run 'parallel --citation'.

parallel: Warning: Cannot spawn any jobs. Raising ulimit -u or /etc/security/limits.conf
parallel: Warning: or /proc/sys/kernel/pid_max may help.

Я сомневаюсь, что предупреждение о локали имеет какое-либо отношение к parallel остановлено.

Некоторая отладочная информация:

/proc/sys/kernel/pid_max содержит 32768

ps -aux |wc -l выходы 453

ulimit -u выходы 504433

/etc/security/limits.conf пусто (закомментировано)

У меня есть root доступ на удаленном сервере, но мы хотели бы избежать внесения каких-либо изменений, требующих доступа root (потому что это общий экземпляр).

Если это актуально, каждая строка commands.txt является вызов сценария python с разными аргументами, при этом все STDERR перенаправляются на STDOUT. Этот сценарий также выполняет os.system вызовов и, следовательно, может порождать фиксированное количество новых процессов. Некоторые из них просто копируют файлы, а другие обращаются к серверу для получения ответа. Таким образом, время, затрачиваемое на каждую строку, сильно различается.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...