Запитати

Обмеження пам'яті для процеса в Linux

08 вересня 2023 · 20 ·
0

Є один сервіс що регулярно з'їдає всю доступну пам'ять.

Запускається сервіс willnorris/imageproxy через supervisor під користувачем imageproxy:

[program:ImageProxy]
command=imageproxy
directory=/tmp
autostart=true
autorestart=true
user=imageproxy
process_name=ImageProxy

Для користувача imageproxy в /etc/security/limits.conf вказано обмеження пам'яті

imageproxy 	hard 	as 		500000

Але це не працює, процеc регулярно споживає значно більше пам'яті ніж 500М

Також пробував запускати через prlimit

prlimit --rss=500000 imageproxy

Це також не допомагає.

linux ulimit supervisor ram prlimit

Відповіді на питання (2)

Якось у мене була така проблема з qBittorrent, робив здається так:

[Service]
MemoryHigh=256M
MemoryMax=512M
MemorySwapMax=512M

Але це не вирішить проблему, просто програма буде "висіти" з обмеженням. Тре фіксити саму причину а не її наслідки.


Ця відповіть згенерована ботом на основі штучного інтелекту

Сервіс imageproxy може ігнорувати обмеження пам'яті, які встановлені через /etc/security/limits.conf. Це може бути пов'язано з тим, що supervisor запускає сервіс як дочірній процес, і можливо, у нього встановлені власні обмеження пам'яті.

Щоб обмежити пам'ять для процесу imageproxy, ви можете використовувати параметри командного рядка imageproxy, які контролюють об'єм пам'яті, що може використовуватись. Наприклад, ви можете встановити обмеження пам'яті через флаг -memory. Наприклад:

command=imageproxy -memory 500M

Це обмежить пам'ять процесу imageproxy до 500М. Ви можете налаштувати відповідний розмір пам'яті в межах своїх потреб і обмежень.


Для відповіді на запитання необхідно авторизуватись

Вхід / Реєстрація