ประสิทธิภาพการเขียนต่ำบน ecryptfs


15

ฉันทำการเปรียบเทียบกับ ecryptfs และ dm-crypt เล็กน้อยและได้ผลลัพธ์ที่น่าสนใจ ทั้งหมดต่อไปนี้ทำด้วยระบบไฟล์ Btrfs ใช้ddเพื่อคัดลอกไฟล์ ~ 700MB ไปยัง / จาก ramdisk พร้อมconv=fdatasyncตัวเลือกเพื่อบังคับให้ซิงค์ข้อมูล ล้างแคชดิสก์ก่อนการทดสอบแต่ละครั้ง

No encryption:
 read - 165MB/s
 write - 120MB/s
ecryptfs:
 read - 125MB/s
 write - 15MB/s
dm-crypt:
 read - 150MB/s
 write - 115MB/s
dm-crypt + ecryptfs:
 read - 120MB/s
 write - 15MB/s

ตอนนี้ฉันเข้าใจว่าการเข้ารหัสช้ากว่าระบบไฟล์ raw อย่างไรก็ตามฉันไม่ได้คาดหวังว่าประสิทธิภาพการเขียนจะลดลงอย่างมากด้วย ecryptfs การที่ฉันบังคับให้ซิงค์ข้อมูลทำให้การทดสอบนี้ไม่สมจริงหรือไม่ หรือมีตัวเลือกใดบ้างที่ฉันสามารถส่งไปยัง ecryptfs เพื่อให้การเขียนทำงานได้เร็วขึ้น?

ฉันใช้การเข้ารหัสชื่อไฟล์ใน ecryptfs แต่นอกเหนือจากนั้นทุกอย่างถูกตั้งค่าเป็นค่าเริ่มต้น


การเปรียบเทียบอาจเป็นเรื่องยากและบางครั้งการทดสอบก็มีข้อ จำกัด ที่ไม่คาดคิดโดยเฉพาะเมื่อบังคับให้เขียนแบบซิงโครนัส ฉันไม่คุ้นเคยกับการทำงานภายในของ ecryptfs แต่คุณควรแน่ใจว่าได้ตัดทอนประเด็นการขยายการเขียน ขนาดบล็อกใดที่ ecryptfs ใช้และสิ่งที่คุณระบุสำหรับวว หาก ecryptfs เข้ารหัสข้อมูลครั้งละ 16kb และคุณกำลังเขียนบล็อกที่มีขนาดเล็กลงการซิงค์แต่ละครั้งจะบังคับให้การอ่านเพื่อดึงบล็อกจากนั้นแก้ไขข้อมูลแล้วเข้ารหัสและสุดท้ายเขียน ที่สามารถอธิบายตัวเลขประสิทธิภาพเช่นนี้
ketil

คำตอบ:


2

Man page ของddabout fdatasyncอ่าน: physically write output file data before finishingดังนั้นมันจะเขียนข้อมูลทางกายภาพ "ครั้งเดียว" เท่านั้น (อ่านมันว่า "ไม่บังคับให้ล้างข้อมูลบล็อก X หรือไบต์ทุกรายการ แต่ล้างข้อมูลเพียงครั้งเดียวในตอนท้าย") หากคุณใช้ddในการทำแบบทดสอบมันเป็นวิธีที่ดีที่สุดในการรับผลลัพธ์ที่แม่นยำที่สุด ในทางกลับกันหากไม่ใช้การตั้งค่าสถานะเฉพาะนั้นจะทำให้ผลลัพธ์ของคุณไม่สมจริง: การละเว้นการทำเช่นนี้อาจทำให้พลาดเวลาในการเข้ารหัสตัวเองเนื่องจากddเป็นการคัดลอกข้อมูลไปรอบ ๆ

อย่างไรก็ตามฉันยังคิดว่ามีบางอย่างเกิดขึ้นกับผลลัพธ์ของคุณ แต่ฉันพบบทความนี้ที่แสดงเกือบเหมือนกัน: ecryptfs ช้าอย่างเจ็บปวด และการทดสอบของคุณ ( ไฟล์เดียวที่ถูกคัดลอก) เป็นสถานการณ์ที่ดีที่สุดสำหรับ ecryptfs!

ในฐานะที่เป็น ecryptfs เขียนไฟล์ที่เข้ารหัส (มีส่วนหัวที่กำหนดเองที่มีข้อมูลเมตาภายใน) สำหรับทุกรุ่นข้อความที่ชัดเจนมีไฟล์ขนาดเล็กจำนวนมากแสดงถึงแม้ประสิทธิภาพลดลงมากขึ้น

อย่างไรก็ตาม ecryptfs มีประโยชน์: คุณสามารถส่งไฟล์ที่เข้ารหัสได้ทันทีโดยไม่ต้องสูญเสียการเข้ารหัส การสำรองข้อมูลของคุณ (สมมติว่าคุณกำลังสำรองข้อมูลที่เข้ารหัสไว้ ) จะเร็วขึ้นเนื่องจากคุณจะคัดลอกไฟล์ที่มีขนาดใหญ่เท่ากับข้อมูลของคุณ

dm-crypt อาจเร็วกว่านี้ แต่คุณจะต้องส่ง container ทั้งหมด (ทั้งระบบไฟล์) เพื่อให้การเข้ารหัสเหมือนเดิม และการสำรองข้อมูลก็จะประกอบด้วยคอนเทนเนอร์ทั้งหมดไม่สามารถทำการสำรองข้อมูลเพิ่มเติมในกรณีส่วนใหญ่

ฉันใช้ (และยังคงใช้) ทั้งสองวิธี (ไม่ใช่เครื่องมือเดียวกัน) เพื่อเก็บข้อมูลที่เข้ารหัส: ไฟล์ที่ใช้ (ecryptfs) นั้นง่ายต่อการซิงโครไนซ์ผ่านบริการโฮสติ้งออนไลน์เช่น Dropbox ระหว่างพีซี แต่มันค่อนข้างช้าเมื่อ ทำการเปลี่ยนแปลงและทำให้ฉันมีปัญหาบางอย่างกับระบบไฟล์ที่อยู่ภายใต้ (มันถือว่ามันสามารถเขียนไฟล์และปัญหาที่เกี่ยวข้องกับข้อ จำกัด ในระบบไฟล์มักจะทำลายทุกสิ่งขึ้น); ฉันชอบการเข้ารหัสอุปกรณ์บล็อก: ฉันถือว่ามันเป็นพาร์ติชันที่เรียบง่ายดังนั้นข้อ จำกัด และปัญหาจึงไม่ได้แย่มาก ข้อเสียเปรียบเพียงอย่างเดียวคือการคัดลอกคอนเทนเนอร์ซึ่งอาจใช้เวลานานกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.