Amazon RDS I / O अनुरोध - 1 क्वेरी = 1 बिल योग्य I / O?


9

मेरे पास एक InnoDB डेटाबेस है जिसे मैं अमेज़ॅन RDS पर माइग्रेट करना चाहता हूं।

मेरा वर्तमान कार्यान्वयन, मेरे स्वयं के सर्वर पर होस्ट किया गया, प्रति माह लगभग 8M क्वेरी दिखाता है।

RDS साइट का कहना है कि I / O दर $ 0.10 प्रति 1 मिलियन अनुरोध है

क्या 1 I / O = 1 क्वेरी है? यानी, क्या इस राशि + RDS शुल्क के लिए मुझे $ 80 / मो का बिल दिया जाएगा?

जवाबों:


7

चेतावनी: अपनी संख्या के साथ बहुत सावधान रहें और आप एक प्रश्न के रूप में क्या देखते हैं !!!

मैं ऐसी चेतावनी क्यों दे रहा हूँ ???

अगस्त 2011 में वापस, मैंने सर्वरफॉल्ट में पोस्ट लिखकर बताया कि 24 दिनों में 1 बिलियन क्वेरी को कैसे निष्पादित किया जा सकता है

यहाँ वह पूरी पोस्ट है:

MySQL आंतरिक रूप से प्रश्नों के लिए कॉल करेगा। वास्तव में, MySQL में आप जो कुछ भी करते हैं, वह एक क्वेरी है।

यदि आप सामान्य लॉग या धीमी क्वेरी लॉग ऑन करते हैं, तो सब कुछ mysqld रिकॉर्ड किया जाता है।

यदि आपके पास --log- क्वेरीज़-नॉट-यूज़िंग-इंडेक्स सक्षम है, तो सब कुछ धीमी लॉग में अनुक्रमित भूमि को शामिल नहीं करता है।

मान लें कि आप इस क्वेरी को चलाते हैं:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| annarbor           |
| dude               |
| example            |
| garbage            |
| lovesh             |
| mysql              |
| performance_schema |
| replagdb           |
| stuff              |
| test               |
| tostinni           |
| wordpress          |
| zipcodes           |
+--------------------+
14 rows in set (0.06 sec)

हाँ, दिखावा; एक प्रश्न है। वास्तव में, क्या information_schema समकक्ष ???

mysql> select schema_name "Database" from information_schema.schemata;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| annarbor           |
| dude               |
| example            |
| garbage            |
| lovesh             |
| mysql              |
| performance_schema |
| replagdb           |
| stuff              |
| test               |
| tostinni           |
| wordpress          |
| zipcodes           |
+--------------------+
14 rows in set (0.08 sec)

क्या तालिका की जानकारी_schema.schemata का सूचकांक है ???

mysql> show create table information_schema.schemata\G
*************************** 1. row ***************************
       Table: SCHEMATA
Create Table: CREATE TEMPORARY TABLE `SCHEMATA` (
  `CATALOG_NAME` varchar(512) NOT NULL DEFAULT '',
  `SCHEMA_NAME` varchar(64) NOT NULL DEFAULT '',
  `DEFAULT_CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '',
  `DEFAULT_COLLATION_NAME` varchar(32) NOT NULL DEFAULT '',
  `SQL_PATH` varchar(512) DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

नहीं, यह नहीं है। तो, शो DATABASES; एक सामान्य लॉग और धीमी लॉग में लैंड करेगा (--log- क्वेरीज़-नॉट-यूज़िंग-इंडेक्स सक्षम)

इसलिए, कई ऑपरेशन जो हमें नहीं लगता कि एक क्वेरी का गठन करेंगे, केवल एक क्वेरी हो सकते हैं, लेकिन mysqld के लिए आंतरिक।

यदि आप किसी ऐसे निगरानी उपकरण का उपयोग कर रहे हैं जो mysqld से जुड़ा हुआ है, तो यह प्रश्नों पर गणना भी करेगा।

उदाहरण:

mysql> show global status like 'uptime'; select * from information_schema.global_status where variable_name='uptime';

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Uptime        | 613   |
+---------------+-------+
1 row in set (0.00 sec)

+---------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+---------------+----------------+
| UPTIME        | 613            |
+---------------+----------------+
1 row in set (0.00 sec)

बस mysqld के अपटाइम को प्राप्त करना एक क्वेरी है। आंतरिक रूप से, MySQL को निष्पादित होने वाले प्रश्नों को कैसे गिना जाता है? यहाँ दो स्थिति चर हैं जो कुछ प्रकाश डाल सकते हैं:

  • क्वेरी : सर्वर द्वारा निष्पादित स्टेटमेंट की संख्या। इस चर में प्रश्नों के चर के विपरीत संग्रहीत कार्यक्रमों के भीतर निष्पादित बयान शामिल हैं। यह COM_PING या COM_STATISTICS कमांड की गणना नहीं करता है।

  • प्रश्न : सर्वर द्वारा निष्पादित स्टेटमेंट की संख्या। इसमें क्लाइंट द्वारा सर्वर को भेजे गए कथन और क्वेरी चर के विपरीत, संग्रहीत प्रोग्राम के भीतर निष्पादित नहीं किए गए कथन शामिल हैं। यह चर COM_PING, COM_STATISTICS, COM_STMT_PREPARE, COM_STMT_CLOSE, या COM_STMT_RESET आदेशों की गणना नहीं करता है।

कृपया चिंतित न हों यदि आपके MySQL सर्वर की निगरानी की जा रही है क्योंकि स्थिति चर के लिए कॉल करने वाली निगरानी अनुरोधित डेटा को प्राप्त करने के लिए आंतरिक रूप से क्वेरी चला रही है।

24 दिनों में 1 बिलियन है

  • प्रति दिन 41.7 मिलियन प्रश्न
  • प्रति घंटे 1.736 मिलियन प्रश्न
  • प्रति मिनट 28,935 प्रश्न
  • 482 प्रश्न प्रति सेकंड

एक MySQL उदाहरण के लिए जिसकी निगरानी की जा रही है, ये संख्या बिल्कुल भी दूर नहीं है।

यदि आप MySQL Workbench, MySQL एडमिनिस्ट्रेटर, या phpMyAdmin का उपयोग कर रहे हैं, तो इन उत्पादों को उत्पन्न करने या अपडेट करने वाले किसी भी पृष्ठ पर इन छोटी स्थिति के प्रश्नों को समन किया जाएगा और जल्दी से नंबर चलाए जाएंगे।

सारांश

यदि आपकी साइट वास्तव में 8M प्रश्न बनाती है, तो एक I / O दर $ 1 प्रति 10 मिलियन अनुरोध, $ 0.80 (80 सेंट) प्रति माह होनी चाहिए। यदि आप एक महीने में 1 बिलियन प्रश्नों को निष्पादित करते हैं, तो वह $ 100.00 है। कृपया सुनिश्चित करें कि इन नंबरों पर जाइव करें और अपने CFO के साथ लिखने के लिए इसे तैयार करें!

अद्यतन 2012-05-02 16:26 EDT

चूँकि यह 800M क्वेरीज़ / महीना है, इसलिए यह $ 80.00 / महीना है


1
उत्तर के लिए धन्यवाद ... मेरा मतलब 800M टाइप करना था, 8M नहीं। भले ही, क्या आपको पता है कि 1 क्वेरी = 1 I / O?

यदि आप मेरे संबंधित प्रश्न का उत्तर यहां दे सकते हैं तो यह बहुत अच्छा होगा: dba.stackexchange.com/questions/49869/…
क्लिक करें

6

नहीं, एक I / O ऑपरेशन एक क्वेरी के बराबर नहीं है। यदि क्वेरी कैश द्वारा नियंत्रित की जाती है (और आप भाग्यशाली हैं), तो एक क्वेरी में 0 IO कार्रवाई हो सकती है, या इसके परिणामस्वरूप कई IO ऑपरेशन हो सकते हैं। संभावित रूप से, सैकड़ों और हजारों, मैं अनुमान लगाता हूं, तालिकाओं, सूचकांक, प्रश्नों और अन्य विवरणों के आधार पर।

http://aws.amazon.com/ebs/ निम्नलिखित बताता है:

जब तक आप इसे जारी नहीं करते हैं तब तक मानक मात्रा के लिए वॉल्यूम संग्रहण प्रति माह जीबी में आपके द्वारा प्रावधान की गई राशि से लिया जाता है। मानक वॉल्यूम के लिए वॉल्यूम I / O आपके वॉल्यूम के लिए किए गए अनुरोधों की संख्या से चार्ज किया जाता है। IOSTAT जैसे कार्यक्रमों का उपयोग किसी भी समय आपके सिस्टम के सटीक I / O उपयोग को मापने के लिए किया जा सकता है। हालांकि, एप्लिकेशन और ऑपरेटिंग सिस्टम अक्सर कैशिंग के विभिन्न स्तरों को करते हैं, इसलिए मानक संस्करणों के लिए, आपको अपने बिल पर कम / अधिक संख्या में आपके आवेदन द्वारा देखे जाने की संभावना होगी, जब तक कि आप अपने सभी I / Os को डिस्क पर सिंक नहीं करते। ।

iostat एक निम्न-स्तरीय लिनक्स उपयोगिता है, जो डेटाबेस प्रश्नों के बारे में कुछ भी नहीं जानता है। http://linux.die.net/man/1/iostat

उपरोक्त उद्धरण ईबीएस सेवा के लिए है, लेकिन आरडीएस ईसी 2 और ईबीएस पर आधारित है, इसलिए मुझे पूरा विश्वास है कि उनका आरडीएस में एक ही मतलब है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.