क्या सभी 700 उदाहरण संभवतः समवर्ती रूप से चल सकते हैं?
यह इस बात पर निर्भर करता है कि आप समवर्ती रूप से क्या मतलब रखते हैं। यदि हम योग्य हैं, तो नहीं, वे तब तक नहीं कर सकते जब तक आपके पास आपके सिस्टम पर निष्पादन के 700 धागे नहीं हैं (आप शायद नहीं)। यथार्थवादी रूप से, हां, वे शायद कर सकते हैं, बशर्ते आपके पास सिस्टम पर पर्याप्त रैम और / या स्वैप स्थान हो। UNIX और यह विभिन्न बच्चों को संगामिति के विशाल स्तर के प्रबंधन में उल्लेखनीय रूप से अच्छा है, यही कारण है कि वे बड़े पैमाने पर एचपीसी उपयोग के लिए इतने लोकप्रिय हैं।
जब तक मेरा सर्वर अपनी सीमा तक नहीं पहुँच जाता, तब तक मैं कैसे पहुँच सकता हूँ?
यह पूरी तरह से अधिक जानकारी के बिना संक्षिप्त जवाब देना असंभव है। बहुत ज्यादा, आपको मिलने के लिए पर्याप्त याद रखने की आवश्यकता है:
- एक नौकरी की संपूर्ण रन-टाइम मेमोरी आवश्यकताओं, 700 बार।
- कई नौकरियों के प्रबंधन के लिए बैश की मेमोरी आवश्यकताएं (इस बारे में बैश भयानक नहीं है, लेकिन जॉब कंट्रोल बिल्कुल मेमोरी कुशल नहीं है)।
- सिस्टम पर किसी भी अन्य मेमोरी आवश्यकताओं।
यह मानते हुए कि आप (केवल 50GB रैम के साथ फिर से, आप अभी भी अन्य मुद्दों से निपटने के लिए आह्वान करते हैं:
- नौकरी पर नियंत्रण से कितना सीपीयू समय बर्बाद हो रहा है? शायद ज्यादा नहीं, लेकिन सैकड़ों नौकरियों के साथ, यह महत्वपूर्ण हो सकता है।
- कितना नेटवर्क बैंडविड्थ की जरूरत है? बस उन सभी कनेक्शनों को खोलना आपके नेटवर्क को आपके बैंडविड्थ और विलंबता के आधार पर कुछ मिनटों के लिए स्वाइप कर सकता है।
- कई अन्य चीजें जो मैंने शायद नहीं सोची हैं।
जब वह सीमा समाप्त हो जाती है, तो क्या यह अगले बंद को फू से शुरू करने की प्रतीक्षा करेगा या बॉक्स दुर्घटनाग्रस्त हो जाएगा?
यह इस बात पर निर्भर करता है कि कौन सी सीमा हिट है। यदि यह मेमोरी है, तो सिस्टम पर कुछ मर जाएगा (विशेष रूप से, मेमोरी को मुक्त करने के प्रयास में कर्नेल द्वारा मारा जाता है) या सिस्टम स्वयं क्रैश हो सकता है (मेमोरी से बाहर चलने पर जानबूझकर क्रैश करने के लिए सिस्टम को कॉन्फ़िगर करना असामान्य नहीं है)। यदि यह CPU समय है, तो यह बिना किसी समस्या के बस चलता रहेगा, सिस्टम पर और बहुत कुछ करना असंभव होगा। यदि यह नेटवर्क है, तो आप अन्य सिस्टम या सेवाओं को क्रैश कर सकते हैं।
यहां आपको वास्तव में क्या चाहिए, एक ही समय में सभी नौकरियों को चलाने के लिए नहीं है। इसके बजाय, उन्हें बैचों में विभाजित करें, और एक ही समय में एक बैच के भीतर सभी नौकरियों को चलाएं, उन्हें खत्म करने दें, फिर अगला बैच शुरू करें। GNU पैरेलल ( https://www.gnu.org/software/parallel/ ) का उपयोग इसके लिए किया जा सकता है, लेकिन यह उत्पादन के माहौल में उस पैमाने पर आदर्श से कम है (यदि आप इसके साथ जाते हैं, तो बहुत आक्रामक न हों,) जैसे मैंने कहा, आप नेटवर्क को स्वाइप कर सकते हैं और सिस्टम को प्रभावित कर सकते हैं अन्यथा आप स्पर्श नहीं करेंगे)। मैं वास्तव में Ansible ( https://www.ansible.com/) की तरह एक उचित नेटवर्क ऑर्केस्ट्रेशन टूल की तलाश करूंगा), क्योंकि यह न केवल आपके समसामयिक मुद्दों को हल करेगा (Ansible बैचिंग करता है जैसे कि मैंने ऊपर उल्लेख किया है स्वचालित रूप से), लेकिन आपको काम करने के लिए कई अन्य उपयोगी सुविधाएं भी प्रदान करती हैं (जैसे कार्यों का सुखद निष्पादन, अच्छी स्थिति रिपोर्ट और मूल एकीकरण अन्य उपकरणों की एक बहुत बड़ी संख्या)।
parallel
लगभग 50 समवर्ती नौकरियों का उपयोग करने के साथ अच्छी किस्मत है । यह 1 और 700 के समानता के बीच एक बड़ा माध्यम है। दूसरी अच्छी बात यह है कि यह बैचलेस है। एक एकल रुका हुआ कनेक्शन केवल खुद को स्टाल करेगा, दूसरों को नहीं। मुख्य नकारात्मक पक्ष त्रुटि प्रबंधन है। इन शेल-आधारित दृष्टिकोणों में से कोई भी सुशोभित त्रुटियों को नहीं करेगा। आपको स्वयं सफलता की जाँच स्वयं करनी होगी, और अपनी स्वयं की पुनर्प्राप्ति करनी होगी।