Поддерживайте производительность сервера с помощью systemd
1305
user116804
Я хотел бы выполнить длительную задачу с интенсивным использованием памяти, не влияя на производительность моего сервера. Мой сервер имеет 4 ГБ оперативной памяти, и я создал файл подкачки 30 ГБ.
Существует очень требовательная к памяти программа (которая выполняет сложные запросы к огромной базе данных), которая - через некоторое время - настолько сильно нагружает сервер, что я даже не могу войти через ssh.
Мой план состоял в том, чтобы ограничить ресурсы этой программы через systemd. Во-первых, предотвратите замену пользовательских и системных программ:
Это все. Я назначаю сервис, потребляющий память, для .slice, чтобы он активно менялся и не занимал всю оперативную память. Благодаря предотвращению обмена user.slice и system.slice общая производительность сервера не подвергается негативному влиянию.
У вас есть физический сервер или арендованный виртуальный сервер? Если вы арендуете виртуальный сервер, хост может иметь дополнительные ограничения на использование вашего ресурса.
Mark Stosberg 7 лет назад
0
2 ответа на вопрос
0
Mark Stosberg
MemorySwapMax=Директива была введена в Systemd 232. Если вы используете старую версию, эта директива не может быть доступна для вас.
Директивы не названы MemoryMax=, но есть MemoryLimit=.
См. man systemd.directivesСписок всех директив в установленной вами версии systemd, включая ссылки на manстраницы, на которых они документированы.
0
Moscato
MemoryMax = существует, но он довольно новый, и старые версии systemd могут его не использовать.