मैं mysql संकलित करता हूं, परीक्षण के लिए हम मांसपेशी वितरण के sql- बेंच निर्देशिका से रन-ऑल-परीक्षण का उपयोग करते हैं। क्या यह सब एक घरेलू मशीन पर किया जाता है, जहां डिफ़ॉल्ट सीएफक्यू शेड्यूलर का उपयोग किया जाता है। मशीन एक एएमडी एथलॉन (टीएम) 64 एक्स 2 डुअल कोर प्रोसेसर 4800+ है, दोनों कोर काम करते हैं (हालांकि किसी कारण से केवल एक परीक्षण के लिए इस्तेमाल किया गया था), 2 गीगाबाइट मेमोरी। पेंच - SATA1, AHCI। मायिकाल 5.0.54।
परीक्षण के परिणाम के रूप में कुल परीक्षण समय का उपयोग किया गया था। सन्टेंट पर, यह 1600 सेकंड तक था, सोलारियम पर - 1300, सेंटो पर - 2000 से अधिक।
आज मैंने विभिन्न IO अनुसूचियों पर प्रयोग और मांसपेशियों के व्यवहार का परीक्षण करने का निर्णय लिया। परिणाम कुछ हद तक हैरान करने वाले थे। इस प्रकार,
प्रत्याहार - 1795 सेकंड
समय सीमा - 1867 सेकंड
सीएफक्यू - 1523 सेकंड।
यानी, वह नहीं जिसकी उम्मीद की जा सकती है। कर्नेल को कॉन्फ़िगर करते समय सहायता के अनुसार:
- अग्रिम I / O अनुसूचक आमतौर पर अधिकांश वातावरणों के लिए एक अच्छा विकल्प है, लेकिन समय सीमा I / O अनुसूचक की तुलना में काफी बड़ा और जटिल है, यह कुछ मामलों में धीमा भी हो सकता है विशेष रूप से कुछ डेटाबेस भार।
- समय सीमा I / O अनुसूचक सरल और कॉम्पैक्ट है, और अक्सर अग्रिम I / O अनुसूचक के रूप में अच्छा है, और कुछ डेटाबेस वर्कलोड में, बेहतर है। किसी एक समय में डिस्क पर I / O प्रदर्शन करने वाली एकल प्रक्रिया के मामले में, इसका व्यवहार अग्रिम I / O अनुसूचक के समान है और इसलिए यह एक अच्छा विकल्प है।
- CFQ I / O शेड्यूलर सिस्टम में सभी प्रक्रियाओं के बीच बैंडविड्थ को समान रूप से वितरित करने की कोशिश करता है। यह एक उचित कार्य वातावरण प्रदान करना चाहिए, जो डेस्कटॉप सिस्टम के लिए उपयुक्त है।
यही है, सबसे अच्छा प्रदर्शन समय सीमा पर होने की उम्मीद थी, वास्तव में, यह सबसे धीमा निकला। प्रत्याशाओं ने औसत परिणाम दिखाए, लेकिन सीएफक्यू (डेस्कटॉप !!!) प्रतियोगियों से लगभग पांच मिनट आगे था। यद्यपि परीक्षण एक काम कर रहे डेस्कटॉप सिस्टम पर किए गए थे, उस समय पेंच पर व्यावहारिक रूप से कोई भार नहीं था।
शायद यह मांसपेशियों के अन्य संस्करणों के साथ खेलने के लिए समझ में आता है, लेकिन मैंने अपने mysql उत्पादन सर्वर को किसी अन्य शेड्यूलर में स्थानांतरित करने के बारे में सोचा।