लूपबैक फाइलसिस्टम का प्रदर्शन


10

क्या किसी ने लिनक्स लूपबैक फाइल सिस्टम पर कोई प्रदर्शन / बेंचमार्किंग टेस्ट किया है? आपका अब तक का क्या अनुभव रहा है? क्या प्रदर्शन में कोई गंभीर गिरावट है? मजबूती के बारे में कैसे?

http://freshmeat.net/articles/virtual-filesystem-building-a-linux-filesystem-from-an-ordinary-file


प्रदर्शन की तुलना करने के लिए अपनी मूल डिस्क पर और लूपबैक डिस्क पर बोनी ++ चलाना काफी सरल होना चाहिए।
सीवन

जवाबों:


11

मैंने एक लूपबैक डिवाइस में लिखने के संचालन के साथ थोड़ा सा बेंचमार्किंग किया है। यहाँ निष्कर्ष है:

  • यदि आप हर लिखने के बाद सिंक करते हैं, तो एक लूपबैक डिवाइस काफी खराब प्रदर्शन करता है (लगभग दो बार धीमा)।
  • यदि आप डिस्क कैश को एक IO अनुसूचक को अपना काम करने की अनुमति देते हैं, तो लूपबैक डिवाइस और डायरेक्ट डिस्क एक्सेस का उपयोग करने में कोई अंतर नहीं है।

बेंचमार्क परिणाम

सबसे पहले, मैंने 8GB के tmpfs में एक लूपबैक डिवाइस पर एक बेंचमार्क चलाया, और उस लूपबैक डिवाइस के भीतर एक लूपबैक डिवाइस ( हर लिखने के ऑपरेशन के बाद सिंक के साथ ):

tmpfs में ext4:

Measured speed: 557, 567, 563, 558, 560, 559, 556, 556, 554, 557
Average speed : 558.7 MB/s  (min 554  max 560)

ext4 में tmpfs में बाहर निकालना:

Measured speed: 296, 298, 295, 295, 299, 297, 294, 295, 296, 296
Average speed : 296.1 MB/s  (min 294  max 299)

स्पष्ट रूप से, सिंक-ऑन-राइट के साथ लूपबैक उपकरणों का उपयोग करते समय प्रदर्शन में कुछ अंतर है।
फिर मैंने अपने एचडीडी पर एक ही परीक्षण दोहराया।
ext4 (HDD, 1000 MB, 3 बार):

Measured speed: 24.1, 23.6, 23.0
Average speed : 23.5 MB/s  (min 23.0  max 24.1)

ext4 ext4 (HDD, 945MB) में:

Measured speed: 12.9, 13.0, 12.7
Average speed : 12.8 MB/s  (min 12.7  max 13.0)

HDD पर समान बेंचमार्क, अब हर लिखने के बाद ( time (dd if=/dev/zero bs=1M count=1000 of=file; sync), <size>/ के रूप में मापा जाता है <time in seconds>) को बिना सिंक किए
ext4 (HDD, 1000 MB):

Measured speed: 84.3, 86.1, 83.9, 86.1, 87.7
Average speed : 85.6 MB/s  (min 84.3  max 87.7)

ext4 ext4 (HDD, 945MB) में:

Measured speed: 89.9, 97.2, 82.9, 84.0, 82.7
Average speed : 87.3 MB/s  (min 82.7  max 97.2)

(आश्चर्यजनक रूप से, लूपबैक बेंचमार्क कच्चे-डिस्क बेंचमार्क से बेहतर दिखता है, संभवतः लूपबैक डिवाइस के छोटे आकार के कारण, इस प्रकार वास्तविक सिंक-टू-डिस्क पर कम समय खर्च होता है)

बेंचमार्क सेटअप

सबसे पहले, मैंने अपने / tmp (tmpfs) में 8G का लूपबैक फाइल सिस्टम बनाया:

truncate /tmp/file -s 8G
mkfs.ext4 /tmp/file
sudo mount /tmp/file /mnt/
sudo chown $USER /mnt/

फिर मैंने डेटा के साथ घुड़सवार लूपबैक फ़ाइल को भरकर एक आधार रेखा स्थापित की:

$ dd if=/dev/zero bs=1M of=/mnt/bigfile oflag=sync
dd: error writing '/mnt/bigfile': No space left on device
7492+0 records in
7491+0 records out
7855763456 bytes (7.9 GB) copied, 14.0959 s, 557 MB/s

ऐसा करने के बाद, मैंने पिछले लूपबैक डिवाइस में एक और लूपबैक डिवाइस बनाया:

mkdir /tmp/mountpoint
mkfs.ext4 /mnt/bigfile
sudo mount /mnt/bigfile /tmp/mountpoint
sudo chown $USER /tmp/mountpoint

और बेंचमार्क फिर से दौड़ा, दस बार:

$ dd if=/dev/zero bs=1M of=/tmp/mountpoint/file oflag=sync
...
7171379200 bytes (7.2 GB) copied, 27.0111 s, 265 MB/s

और फिर मैंने परीक्षण फ़ाइल को अनमाउंट किया और हटा दिया:

sudo umount /tmp/mountpoint
sudo umount /mnt

(इसी तरह एचडीडी पर परीक्षण के लिए, सिवाय इसके कि मैंने count=1000टेस्ट को अपनी पूरी डिस्क को भरने से रोकने के लिए भी जोड़ा )
(और नहीं-लिखने-ऑन-सिंक टेस्ट के लिए, मैं समय ddऔर syncऑपरेशन चला गया )


0

मुझे कोई समस्या नहीं है। यह सब रॉक-सॉलिड है। लिनक्स में फाइलसिस्टम कैश और IO अनुसूचक काफी समझदार होते हैं कि इसे सीधे डिस्क के लिए पूछने और डिस्क पर किसी फ़ाइल के अनुभाग के लिए कोई ध्यान देने योग्य अंतर नहीं करना चाहिए।

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