मुझे एक BTRFS पूल में एक साथ चलने वाले डिस्क के एक गुच्छा के साथ एक फ़ाइल सर्वर मिला है और कैशिंग के लिए एक एसएसडी जोड़ना चाहते हैं। मैं मुख्य रूप से चीजों को तेज करने के बाद नहीं हूं, लेकिन नियमित रूप से छोटी पहुंच को पकड़ना चाहता हूं ताकि भारी उपयोग के तहत अधिकांश समय हार्ड डिस्क को बंद करने में सक्षम हो (उन्हें 24/7 नहीं चलाने से ऊर्जा की बचत होगी और इसे बनाना चाहिए पिछले लंबे समय तक डिस्क)।
जहाँ तक मुझे पता है, वर्तमान में लिनक्स में दो एसएसडी कैशिंग तकनीकें लागू की गई हैं, डीएम-कैश और bcache। डीएम-कैश को अभी भी अधिक कुशल बताया गया है, लेकिन दोनों के लिए विकास चल रहा है और मुझे पूर्ण अधिकतम दक्षता के लिए ट्यून करने की आवश्यकता नहीं है।
Bcache के दस्तावेज़ पढ़ना , मैं इन विकल्पों पर आया:
writeback_delay : जब गंदा डेटा कैश में लिखा जाता है और इसमें पहले कोई भी नहीं होता है, तो राइटबैक शुरू करने से पहले कुछ सेकंड इंतजार करता है। 30 की कमी।
writeback_percent : अशून्य, bcache की कोशिश करता पृष्ठभूमि writeback थ्रॉटल और एक पीडी नियंत्रक का उपयोग आसानी से दर को समायोजित करने के द्वारा कैश गंदा की यह प्रतिशत के आसपास रखने के लिए है।
writeback_running : यदि बंद है, तो गंदे डेटा का राइटबैक बिल्कुल भी नहीं होगा। गंदा डेटा अभी भी कैश में जोड़ा जाएगा जब तक कि यह ज्यादातर भरा हुआ न हो; केवल बेंचमार्किंग के लिए। पर चूक।
writeback_delay
मेरे लिए काम करने के लिए एक बड़ा पर्याप्त मूल्य निर्धारित करना : केवल एक घंटे में एक बार वापस लिखें, या (मुझे लगता है कि ऐसा होगा) यदि कैश पूरा चल रहा है।
क्या यह एक उचित सेटअप है, और क्या मैं डिस्क के नीचे कताई करने में सफल होने के लिए कुछ और मानता हूं? अगर मैं अपनी आवश्यकताओं को पूरा करता हूं तो मैं पूरी तरह से अलग मार्ग पर चलने के साथ ठीक हूं।
ऐसा लगता है कि @gorkypl एक समान समस्या पर एक और समाधान की तलाश कर रहा है , लेकिन विभिन्न आवश्यकताएं और वातावरण है और अभी तक इसका जवाब नहीं मिला है।
bcache
, कृपया।