मैं समय-समय पर मापा मूल्यों को संग्रहीत करने के लिए MongoDB का उपयोग करता हूं। प्रत्येक ~ 100 एमएस में मूल्यों का एक गुच्छा दस्तावेज़ के रूप में डाला जाता है। यह ठीक काम करता है, लेकिन मैं प्रदर्शन के मुद्दों को लेकर चिंतित हूं। (मैं सुरक्षित आवेषण का उपयोग करता हूं, ऐसा लगता है जैसे कि PyMongo में यह डिफ़ॉल्ट है।)
क्या होता है जब हार्ड डिस्क को सहेजने में मोंगॉड की तुलना में प्रति सेकंड अधिक आवेषण होते हैं? क्या कोई चेतावनी होगी या यह बस चुपचाप विफल हो जाएगा?
क्या लेखन भार की निगरानी करने की कोई विधि है? मैंने केवल वही पाया है db.serverStatus().writeBacksQueued
जो मुझे कॉल करने पर हमेशा गलत पर सेट होता है। मैं कैसे लिख सकता हूं कि मुझे लिखने की कतार को भरने के लिए कितना डेटा डालना है?
mongostat
ताले दिखाता है। क्या इस बारे में मुझे कुछ चिंतित होना चाहिए?
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn repl time
*117 *0 *0 *0 0 2|0 0 17.4g 35.3g 3.76g 0 .:6.5% 0 0|0 0|0 124b 6k 2 SLV 09:58:10
*111 *0 *0 *0 0 2|0 0 17.4g 35.3g 3.76g 0 .:0.8% 0 0|0 0|0 124b 6k 2 SLV 09:58:11
*111 *0 *0 *0 0 2|0 0 17.4g 35.3g 3.76g 0 .:4.2% 0 0|0 0|0 124b 6k 2 SLV 09:58:1
क्या मुझे ताले लिखने की चिंता है? लेखन बंद समय अवधि के दौरान सम्मिलित करने के लिए क्या होता है? क्या इसे बाद में कतारबद्ध और संग्रहीत किया गया है?
मैं एक मास्टर और एक गुलाम का उपयोग करके एक सरल प्रतिकृति सेटअप के बारे में सोच रहा हूं। क्या प्रारंभिक सिंक या एक रेसक्यूंक प्रक्रिया डेटाबेस को लॉक करती है?
(मैं संस्करण 2.4.3 का उपयोग कर रहा हूं।)
अद्यतन: मुझे लगता है कि आंशिक रूप से मेरे अपने प्रश्न का उत्तर दिया है। मैं एक छोटे से परीक्षण दस्तावेज़ सम्मिलित करते हुए एक साधारण का उपयोग करके प्रति सेकंड 12.000 आवेषण तक पहुंचने में कामयाब रहा। लेकिन qr | qw अभी भी दिखाता है कि पढ़ी जाती हैं- और लिखना कतार अभी भी खाली है:
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn repl time
11234 *0 2 *0 1563 1|0 1 21.9g 44.3g 1.22g 0 testdb:58.9% 0 1|0 1|1 797k 980k 6 PRI 10:26:32
12768 *0 2 *0 1284 1|0 0 21.9g 44.3g 1.22g 0 testdb:58.0% 0 0|0 0|1 881k 1m 6 PRI 10:26:33
12839 *0 2 *0 1231 1|0 0 21.9g 44.3g 1.22g 0 testdb:60.3% 0 0|0 0|1 883k 1m 6 PRI 10:26:34
12701 *0 2 *0 910 1|0 0 21.9g 44.3g 1.22g 0 testdb:61.8% 0 0|0 0|1 858k 1m 6 PRI 10:26:35
12241 *0 2 *0 1206 1|0 0 21.9g 44.3g 1.22g 0 testdb:56.7% 0 0|0 0|0 843k 1m 6 PRI 10:26:36
11581 *0 2 *0 1406 1|0 0 21.9g 44.3g 1.22g 0 testdb:61.8% 0 0|0 0|1 811k 1m 6 PRI 10:26:37
8719 *0 2 *0 1210 1|0 0 21.9g 44.3g 1.22g 0 testdb:43.8% 0 0|0 0|1 618k 762k 6 PRI 10:26:38
11429 *0 2 *0 1469 1|0 0 21.9g 44.3g 1.22g 0 testdb:60.6% 0 0|0 0|1 804k 993k 6 PRI 10:26:39
12779 *0 2 *0 1092 1|0 0 21.9g 44.3g 1.22g 0 testdb:60.2% 0 1|0 0|1 872k 1m 6 PRI 10:26:40
12757 *0 2 *0 436 1|0 0 21.9g 44.3g 1.22g 0 testdb:59.7% 0 0|0 0|1 838k 432k 6 PRI 10:26:41
मुझे लगता है कि इसका मतलब यह है कि अकेले आवेषण बहुत परेशानी का कारण नहीं बनेंगे: "यदि आप बहुत सारे लेखन कार्य कर रहे हैं, तो अन्य लिखित भारी ऑप्स के साथ, जैसे कि बड़े रंगे हुए हटाता है, कतारें बढ़ेंगी।" ( यहां पाया गया ]
मेरा खुला प्रश्न: यदि लंबी अवधि में लेखन कतार बढ़ती है तो मेरे डेटा का क्या होगा?