UNIX संसाधन उपयोग को मापने के लिए, हमें अपने कार्यक्रमों में संसाधन मॉड्यूल का उपयोग करने की आवश्यकता है। यह मॉड्यूल संसाधन उपयोग को भी नियंत्रित कर सकता है।
इस मॉड्यूल का उपयोग करने के लिए, हमें इसका उपयोग करके आयात करना चाहिए -
import resource
संसाधन सीमाएं
इस मॉड्यूल में हम संसाधन उपयोग को सीमित करने के लिए setrlimit () का उपयोग कर सकते हैं। संसाधनों को सीमित करने के लिए दो पैरामीटर हैं। ये पैरामीटर सॉफ्ट लिमिट और हार्ड लिमिट हैं। नरम सीमा मूल रूप से वर्तमान सीमा है, इसे प्रक्रिया में बदला जा सकता है, लेकिन यह कठिन सीमा से अधिक नहीं हो सकता है। हार्ड लिमिट को सॉफ्ट लिमिट से ऊपर किसी भी वैल्यू तक घटाया जा सकता है, लेकिन इसे बढ़ाया नहीं जा सकता।
संसाधन सीमित करने से संबंधित कुछ विधियाँ और स्थिरांक हैं। ये हैं।
विधि संसाधन.getrlimit(संसाधन)
इस विधि का उपयोग नरम और कठोर सीमाओं को टपल के रूप में वापस करने के लिए किया जाता है। यदि निर्दिष्ट संसाधन अमान्य है, तो यह ValueError बढ़ा देगा।
विधि संसाधन.सेटरलिमिट(संसाधन, सीमा)
इस पद्धति का उपयोग संसाधनों की सीमा निर्धारित करने के लिए किया जाता है। सीमाओं को सॉफ्ट और हार्ड लिमिट के टपल के रूप में असाइन किया जा सकता है। हम असीमित संसाधन बनाने के लिए RLIM_INFINITY का भी उपयोग कर सकते हैं।
विधि Resource.prlimit(pid, Resource[, Limits])
यह विधि setrlimit () और getrlimit () विधियों का एक संयोजन है। यह एक मनमानी प्रक्रिया के लिए एक ही समय में संसाधन सीमाएँ प्राप्त और निर्धारित कर सकता है। जब pid 0 होता है, तब यह वर्तमान प्रक्रिया पर कार्य करता है।
संसाधन सीमा से संबंधित कुछ स्थिरांक -
Sr.No. | स्थिरांक और विवरण |
---|---|
1 | <टीडी>|
2 | <टीडी>|
3 | <टीडी>|
4 | <टीडी>|
5 | <टीडी>|
6 | <टीडी>|
7 | <टीडी>|
8 | <टीडी>|
9 | <टीडी>|
10 | <टीडी>
संसाधन उपयोग
संसाधन उपयोग से संबंधित विधियां और स्थिरांक हैं।
विधि संसाधन.getrusage(कौन)
इस पद्धति का उपयोग वर्तमान प्रक्रिया या उसके बच्चों द्वारा उपयोग की जाने वाली वस्तु को वापस करने के लिए किया जाता है। यह विभिन्न क्षेत्रों को लौटाता है। वापसी मूल्य के क्षेत्रों से, हम इस बारे में जानकारी प्राप्त कर सकते हैं कि संसाधन का उपयोग कैसे किया गया है।
विधि Resource.getpagesize()
सिस्टम पेज में बाइट्स की संख्या वापस करने के लिए इस विधि का उपयोग किया जाता है। यह भौतिक पृष्ठ आकार के समान नहीं हो सकता है।
संसाधन उपयोग से संबंधित कुछ स्थिरांक।
Sr.No. | स्थिरांक और विवरण |
---|---|
1 | <टीडी>|
2 | <टीडी>|
3 | <टीडी>|
4 | <टीडी>
उदाहरण कोड
import resource res_limits = resource.getrusage(resource.RUSAGE_SELF) print(res_limits) print('Page Size: ' + str(resource.getpagesize())) resource.setrlimit(resource.RLIMIT_CPU, (1, 2)) print('Resouce Limits: ' + str(resource.getrlimit(resource.RLIMIT_CPU))) for a in range(1000): for b in range(1000): for c in range(1000): pass
आउटपुट
$ python3 example.py resource.struct_rusage(ru_utime=0.035801, ru_stime=0.01074, ru_maxrss=9356, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=1147, ru_majflt=0, ru_nswap=0, ru_inblock=0, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=0, ru_nivcsw=17) Page Size: 4096 Resouce Limits: (1, 2) CPU time limit exceeded (core dumped)