ভার্চুয়ালবক্সের মেমরির ব্যবহার সীমিত করতে সিগ্রুপ ব্যবহার করুন


9

cgroupভার্চুয়ালবক্সের মেমরির ব্যবহার সীমিত করতে আমি (কন্ট্রোল গ্রুপ) ব্যবহার করার চেষ্টা করছি , তবে এটি কার্যকর হবে বলে মনে হচ্ছে না।

আমার যন্ত্রটি হ'ল:

$ uname -a
Linux fc.bgi 2.6.40-4.fc15.i686 #1 SMP Fri Jul 29 18:54:39 UTC 2011 i686 i686 i386 GNU/Linux

আমি এটিকে এভাবে কাজ করার চেষ্টা করেছি:

  1. মেমরি শ্রেণিবদ্ধের অধীনে নতুন সিগ্রুপ তৈরি করা:

    $ cgcreate -g memory:vbox
    
  2. Vbox- এর জন্য মেমরি সেট করা হচ্ছে lim

    $ cgset -r memory.limit_in_bytes=512M vbox
    
  3. ভিডবক্সে পিড চলমান পিডকে গ্রুপিং করা:

    $ cgclassify -g memory:vbox 20015
    

কেউ ব্যাখ্যা করতে পারেন কেন এটি কাজ করছে না?

উত্তর:


3

আপনি যে ফাইলটি রেখেছেন তাতে আপনি /etc/security/limits.conf এর সাহায্যে মেমরি ব্যবহার সীমাবদ্ধ করতে পারেন:

domain type item value

যেখানে domainহয় @groupname, typeহয় hardবা softযেখানে hardlimt যে কোনো পরিস্থিতির অধীন ছাড়িয়ে না যায়।

itemআইটেম ক্ষেত্রটি নির্দিষ্ট করে কী ধরণের আইটেম সীমাবদ্ধ হচ্ছে। উদাহরণগুলির মধ্যে রয়েছে কোর (মূল ফাইলগুলির আকার), ডেটা (কোনও প্রোগ্রামের ডেটা ক্ষেত্রের আকার), fsize (ব্যবহারকারী দ্বারা তৈরি ফাইলের আকার), নফিল (ওপেন ডেটা ফাইলের সংখ্যা), আরএস (বাসিন্দার সেট) আকার), স্ট্যাক (স্ট্যাকের আকার), সিপিইউ (কয়েক মিনিটের মধ্যে একক প্রক্রিয়ার সিপিইউ সময়), এনপ্রোক (একযোগে প্রসেসের সংখ্যা), ম্যাক্সলগিনস (একযোগে লগইনের সংখ্যা) এবং অগ্রাধিকার (প্রক্রিয়াটির অগ্রাধিকার) ডেটা, আরএস এবং স্ট্যাক আইটেমগুলি সমস্ত কোনও প্রোগ্রাম দ্বারা গ্রাহিত মেমরির সাথে সম্পর্কিত। এই এবং ডেটা ক্ষমতার অন্যান্য পদক্ষেপগুলি কিলোবাইটে পরিমাপ করা হয়।

এবং valueসঙ্গে সম্পর্কযুক্ত হয় itemক্ষেত্র আপনি বেছে উদাহরণস্বরূপ, যদি আপনি বেছে আছে আছে cpuমধ্যে itemক্ষেত্র ও করা 2মধ্যে valueতারপর ক্ষেত্রে domain(আপনি VirtualBox গোষ্ঠীর) চেয়ে বেশি নিতে হয় 2cpu 'র সময় এটি বন্ধ করা হবে এর।

আপনি খুব ব্যবহার করতে পারেন ulimitতবে এটি কেবল ব্যাশ শেলের মধ্যেই সীমাবদ্ধ।

আশা করি এটি আপনাকে লক্ষ্য অর্জনে সহায়তা করবে, যদিও আপনি যে পদ্ধতিটি জিজ্ঞাসা করেছেন তা এটি সম্পন্ন হয়নি।


1

আমি অনুমান করছি আপনার /etc/cgconfig.confফাইলটিতে কিছু ভুল আছে । এই সেটআপটি আমার পক্ষে কাজ করে:

[root@localhost cgroup]# cat /etc/cgconfig.conf
mount {
    memory  = /cgroup/memory;
}

[root@localhost cgroup]# service cgconfig start
Starting cgconfig service:                                 [  OK  ]
[root@localhost cgroup]# ls
memory
[root@localhost cgroup]# ls memory/
cgroup.event_control  memory.limit_in_bytes        memory.memsw.max_usage_in_bytes  memory.soft_limit_in_bytes  memory.use_hierarchy
cgroup.procs          memory.max_usage_in_bytes    memory.memsw.usage_in_bytes      memory.stat                 notify_on_release
memory.failcnt        memory.memsw.failcnt         memory.move_charge_at_immigrate  memory.swappiness           release_agent
memory.force_empty    memory.memsw.limit_in_bytes  memory.oom_control               memory.usage_in_bytes       tasks
[root@localhost cgroup]# cgcreate -g memory:vbox
[root@localhost cgroup]# cgset -r memory.limit_in_bytes=512M vbox
[root@localhost cgroup]# cgclassify -g memory:vbox 11727
[root@localhost cgroup]# cat memory/vbox/tasks 
11727

যদিও, কমান্ডগুলি cgreateএবং cgsetকমান্ডগুলি ব্যবহার করার পরিবর্তে , আমি আপনাকে কেবল একটি /etc/cgconfig.confফাইল তৈরি করতে পরামর্শ দেব যাতে এই সেটিংসটি অন্তর্ভুক্ত থাকে যাতে আপনাকে প্রতিটি রিবুটের পরে প্রক্রিয়াটি পুনরাবৃত্তি করতে না হয়। আপনার ক্ষেত্রে, ফাইলটি দেখতে এমন হবে:

[root@localhost cgroup]# cat /etc/cgconfig.conf
mount {
    memory  = /cgroup/memory;
}

group vbox {
    memory {
        memory.limit_in_bytes="536870912";
    }
}

এখন, আপনি যখনই cgconfigপরিষেবাটি শুরু করবেন , আপনার ভিবিক্স সিগ্রুপ প্রস্তুত থাকবে। যা দরকার তা হ'ল ভার্চুয়ালবক্সের পিআইডি /cgroups/memory/vbox/tasksফাইলটিতে cgclassifyবা কেবল কেবল echoসেই ফাইলটির নম্বর ব্যবহার করে ফাইলটিতে সরিয়ে নেওয়া।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.