আমাদের ক্লাস্টারে, আমরা আমাদের প্রক্রিয়া সংস্থানগুলি সীমাবদ্ধ করছি, যেমন মেমরি ( memory.limit_in_bytes
)।
আমি মনে করি, শেষ পর্যন্ত, এটি লিনাক্স কার্নেলের ওওএম কিলারের মাধ্যমেও পরিচালনা করা হয় ( উত্স কোডটি পড়ে এটি দেখতে দেখতে )।
আমার প্রক্রিয়াটি মারা যাওয়ার আগে সিগন্যাল পাওয়ার কোনও উপায় আছে কি? (ঠিক এসজিই'র-notify
বিকল্পের মতো , যা প্রক্রিয়াটি মারা যাওয়ার আগে প্রেরণ করবে ))qsub
SIGUSR1
আমি /dev/mem_notify
এখানে পড়ি কিন্তু আমার তা নেই - আজকাল অন্য কিছু আছে? আমিও পড়তে এই যা কিছুটা প্রাসঙ্গিক বলে মনে হয়।
আমি কমপক্ষে একটি ছোট স্ট্যাক ট্রেস এবং সম্ভবত কিছু দরকারী ডিবাগ তথ্য ডাম্প করতে সক্ষম হতে চাই - তবে আমি কিছু স্মৃতি মুক্ত করে পুনরুদ্ধার করতে পারি।
আমি বর্তমানে যে ছোট্ট স্ক্রিপ্টটি ব্যবহার করছি তা হ'ল এই ছোট স্ক্রিপ্ট যা প্রায়শই আমি সীমাবদ্ধতার (95%) কাছাকাছি কিনা তা পরীক্ষা করে এবং যদি তাই হয় তবে এটি প্রক্রিয়াটি একটি প্রেরণ করে SIGUSR1
। বাশ-এ, আমি এই স্ক্রিপ্টটি ব্যাকগ্রাউন্ডে ( cgroup-mem-limit-watcher.py &
) শুরু করছি যাতে এটি একই ক্রগ্রুপে অন্যান্য প্রক্সের জন্য নজর রাখে এবং প্যারেন্ট বাশ প্রক্রিয়াটি মারা যাওয়ার পরে এটি স্বয়ংক্রিয়ভাবে প্রস্থান করে।