এটি করার কোনও আনুষ্ঠানিকভাবে সমর্থিত উপায় নেই। (এটি ভুল the নীচের অংশটি দেখুন)
একটি সরকারীভাবে নিরুৎসাহিত উপায় (কারণ এটি সিগ্রুপকে হেরফের করে) এইভাবে:
নিম্নলিখিত ফাইলটি হিসাবে তৈরি করুন /etc/systemd/system/user@.service.d/set-memhigh.conf
[Service]
Type=simple
ExecStartPost=+/root/set-memoryhigh.sh %i
তারপরে নিম্নলিখিত ফাইলটিকে "/root/set-memoryhigh.sh" হিসাবে তৈরি করুন
#!/bin/bash
exec >>/var/tmp/log.txt 2>&1 # for logging
set -x # for logging
for d in /sys/fs/cgroup /sys/fs/cgroup/user.slice /sys/fs/cgroup/user.slice/user-$1.slice; do
echo "+memory" >>${d}/cgroup.subtree_control
done
/bin/echo "24G" >> /sys/fs/cgroup/user.slice/user-$1.slice/memory.high
এটি কাজ করে চলতে পারে কিনা তা আপনি দেখতে পারেন
cat /sys/fs/cgroup/user.slice/user-${UID}.slice/memory.high
যদি "/sys/fs/cgroup/user.slice" উপস্থিত না থাকে তবে ইউনিফাইড সিগ্রুপ ক্রমক্রমটি সক্ষম হয় না। আমাদের এটি https://unix.stackexchange.com/a/452728/297666 হিসাবে সক্ষম করতে হবে
যদিও এটি কাজ করে, আপনি যদি এটি পছন্দ করেন তবে আমি নিশ্চিত নই ...
25 জুলাই নোটটি যুক্ত করা হয়েছে: প্রতিটি ব্যবহারকারীর /etc/systemd/system/user-1000.slice
জন্য নিম্নলিখিত ফাইলটি তৈরি করা (ব্যবহারকারীর ইউআইডি দ্বারা 1000 প্রতিস্থাপন) সেই ব্যবহারকারীর উপর একটি স্মৃতি সীমাবদ্ধতা আরোপ করে। আমি এটি ওবুন্টু 18.04- তে সিস্টেমেড 237 তে এবং ডেবিয়ান স্ট্রেচথ প্রসারিত-ব্যাকপোর্টগুলি থেকে ইনস্টল করা সিস্টেমড 237 সহ যাচাই করেছি :
[Slice]
Slice=user.slice
MemoryHigh=24G
অসুবিধাটি হ'ল প্রতিটি ব্যবহারকারীর জন্য আমাদের উপরের ফাইলটি তৈরি করতে হবে । সিস্টেমেড 239 দিয়ে আমরা উপরের ফাইলটি তৈরি করতে পারি /etc/systemd/system/user-.slice.d/memory.conf
এবং প্রতিটি ব্যবহারকারীর উপর মেমরি সীমাবদ্ধতা আরোপিত হয়। তবে সিস্টেমেড 239-তে একটি বাগ রয়েছে (এই বাগটি 240 সালে সংশোধন করা হয়েছিল) এবং এটি যেমন ইচ্ছা তেমন কাজ করে না। বাগের চারপাশে কাজ করতে নীচের ফাইলটি তৈরি করে user-0.slice
চালান systemctl enable user-0.slice
। আমরা কি না প্রত্যেক ব্যবহারকারীর জন্য নিম্নলিখিত ফাইল করা আছে।
[Unit]
Before=systemd-logind.service
[Slice]
Slice=user.slice
[Install]
WantedBy=multi-user.target