मैंने एक लूपबैक डिवाइस में लिखने के संचालन के साथ थोड़ा सा बेंचमार्किंग किया है। यहाँ निष्कर्ष है:
- यदि आप हर लिखने के बाद सिंक करते हैं, तो एक लूपबैक डिवाइस काफी खराब प्रदर्शन करता है (लगभग दो बार धीमा)।
- यदि आप डिस्क कैश को एक 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
ऑपरेशन चला गया )