मैंने एसक्यूएल-प्रश्नों की आईओ-गतिविधि को मापने के लिए proc/<pid>/io
पढ़ा, जहां <pid>
डेटाबेस सर्वर का पीआईडी है। मैंने अंतर की गणना करने के लिए प्रत्येक प्रश्न से पहले और बाद में मूल्यों को पढ़ा और बाइट्स की संख्या को पढ़ने और/या लिखे जाने वाले अनुरोधों को प्राप्त किया।क्या आरसीएचएआर में READ_BYTES (proc/<pid>/io) शामिल हैं?
मैं क्षेत्र पता READ_BYTES
मायने रखता है वास्तविक डिस्क-आईओ जहां तक है, जबकि RCHAR
, अधिक शामिल हैं पढ़ता है जैसे कि linux पेज कैश से संतुष्ट किया जा सकता है (स्पष्टीकरण के लिए Understanding the counters in /proc/[pid]/io देखें)। यह धारणा की ओर जाता है, कि RCHAR
READ_BYTES
से अधिक या अधिक मान के साथ आना चाहिए, लेकिन मेरे परिणाम इस धारणा का खंडन करते हैं।
मैं परिणामों के लिए कुछ मामूली ब्लॉक या पेज भूमि के ऊपर मैं Infobright बर्फ के लिए मिलता है कल्पना कर सकता (मूल्यों एमबी हैं):
Query RCHAR READ_BYTES
tpch_q01.sql| 34.44180| 34.89453|
tpch_q02.sql| 2.89191| 3.64453|
tpch_q03.sql| 32.58994| 33.19531|
tpch_q04.sql| 17.78325| 18.27344|
लेकिन मैं पूरी तरह से (मूल्यों एमबी कर रहे हैं) MonetDB के लिए आईओ-काउंटर को समझने में विफल :
Query RCHAR READ_BYTES
tpch_q01.sql| 0.07501| 220.58203|
tpch_q02.sql| 1.37840| 18.16016|
tpch_q03.sql| 0.08272| 162.38281|
tpch_q04.sql| 0.06604| 83.25391|
Am मैं इस धारणा है कि RCHAR
READ_BYTES
शामिल के साथ गलत? क्या कर्नेल काउंटरों को बाहर निकालने का कोई तरीका है, जो मोनेट डीबी उपयोग कर सकता है? यहाँ क्या हो रहा है?
मैं जोड़ सकता हूं, कि मैं पृष्ठ कैश साफ़ करता हूं और प्रत्येक क्वेरी से पहले डेटाबेस-सर्वर को पुनरारंभ करता हूं। मैं उबंटू 11.10 पर हूं, कर्नेल 3.0.0-15-जेनेरिक चल रहा हूं।
धन्यवाद। दरअसल, [मोनेट डीबी आर्किटेक्चर डॉक्स] (http://www.monetdb.org/Documentation/Manuals/MonetDB/Architecture) कहते हैं, कि वे मेमोरी मैप की गई फ़ाइलों का उपयोग करते हैं। – lupz