Зачем настраивать узлы кластера для перезагрузки при нехватке памяти?

У меня есть доступ к исследовательскому кластеру HPC, который настроен таким образом, что, если ваша работа пытается использовать больше памяти, чем доступно узлу, узел аварийно завершает работу и автоматически перезагружается. Это кажется обычной практикой, например, см. https://www.osc.edu/documentation/knowledge_base/out_of_memory_oom_or_excessive_memory_usage

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

2 ответа

Решение

Перезагрузка узла гарантирует, что узел работает правильно, прежде чем ему будет назначено следующее задание. Кроме того, когда вы запускаете узел из памяти и начинаете замену, он замедляется и может перестать отвечать на запросы. В этом случае они могут использовать что-то вроде IPMI для отключения питания узла.

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

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

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

Другие вопросы по тегам