প্রদত্ত প্রক্রিয়াটির জন্য কীভাবে সংস্থান ব্যবহারের সীমাবদ্ধ করবেন?


11

আমার একটি অ্যাপ্লিকেশনটির জন্য একটি প্রক্রিয়া রয়েছে যা চালানো দরকার, তবে এটি যা করে তার জন্য অনেক বেশি আইও ব্যবহার করে শেষ হয়। এবং সত্যিই আমার কম্পিউটারটিকে ক্র্যাশ করেছে, এটি চলমান অবস্থায় অন্য কিছু করা অসম্ভব করে তুলেছে।

তাই আমি ভাবছিলাম যে কোনও প্রদত্ত প্রক্রিয়াটির জন্য আইও ব্যবহার, র‌্যাম এবং সিপিইউ সীমাবদ্ধ করার কোনও উপায় আছে? এবং অবশ্যই এর উপ-প্রক্রিয়াগুলি।

এটি আমার উবুন্টু 18.04 এলটিএস সিস্টেমে।


2
@ গ্রেট ইউঙ্কলবাগেরিয়া সত্যিকারের নয়, যদি না আপনি খ্যাতি পয়েন্টগুলির সাথে ভাগ না চান। - আপনি কী জিজ্ঞাসা করতে সহজ উত্তর ঠিক একত্রিত করতে অন্যদের কি প্রস্তাব ionice, renice- এবং সম্ভবত ulimit -sকমান্ড, এবং যে এটি।
সের্গেই কলডিয়াজন্য

@ গ্রেট ইউঙ্কল বালগারিয়া এর সাথে পরিচিত নয় cgroups-ioতাই এর কোনও ধারণা নেই :)
সের্গি কলডিয়াজহনি

সম্ভাব্য সম্পর্কিত প্রশ্ন: Askubuntu.com/q/538992/295286 উত্তরগুলিতে cgroups উল্লেখ করা হয়েছে, তবে অন্য কিছু নয়। । । হতে পারে ?
সের্গেই কলডিয়াজন্য

1
@ সের্গি কলডিয়াজনি: দেখে মনে হচ্ছে কেউ মন্তব্য পরিষ্কার করেছেন!

উত্তর:


8

আপনি সমস্ত একটি সমন্বয় ব্যবহার করা উচিত cgexec, cpulimitএবং ionice:

  1. সীমাবদ্ধ র‌্যাম এবং সুইপ:

    sudo cgcreate -g memory:/szMyGroup
    echo $(( 512 * 1024 * 1024 )) | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.limit_in_bytes
    echo $(( 1024 * 1024 * 1024 ))  | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.memsw.limit_in_bytes

    উপরের কমান্ডগুলি নামে একটি কন্ট্রোল গ্রুপ তৈরি করে szMyGroup(উদাহরণস্বরূপ আপনার ক্ষেত্রে group-great-uncle), szMyGroup512 এমবি অবধি শারীরিক মেমরির অধীনে এবং 1024 এমবি অব অদলবদল প্রক্রিয়াগুলির জন্য একটি ক্যাপ সেট করুন এবং তারপরে:

    sudo cgexec -g memory:szMyGroup szMyProgram

    যা szMyGroupনিয়ন্ত্রণ প্রোগ্রামের অধীনে আপনার প্রোগ্রামটি পরিচালনা করবে , যাতে তারা সীমাবদ্ধতা মেনে চলে তা নিশ্চিত করে

  2. ডিস্ক আইও সীমাবদ্ধ করুন:

    sudo ionice --class 3 --pid $(pgrep -f szMyProgram)

    উপরোক্ত কমান্ডের ব্যবহার pgrepসঙ্গে বর্তমান কম্যান্ড-লাইন পুনঃব্যবহার অংশের যখন শুধুমাত্র ডিস্ক ব্যবহার করতে এটির ডিস্ক অ্যাক্সেস সীমিত করতে অন্য কোন প্রোগ্রামটি ব্যবহার করছে

  3. সিপিইউ সীমাবদ্ধ করুন:

    sudo cpulimit --limit=25 --pid=!#:4

    প্রোগ্রামের সিপিইউ এখন সর্বোচ্চ 25% এর মধ্যে সীমাবদ্ধ

যদি প্রোগ্রামটি শুরু করতে প্রচুর সিপিইউ ব্যবহার না করে তবে সিপুলিমিটের মান বর্তমানে ব্যবহার করে তার অর্ধেক বা তার চেয়ে কম করুন।

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