ความแตกต่างระหว่างตัวเลือกการเมานท์ 'sync' และ 'async'


42

ความแตกต่างระหว่างsyncและasyncตัวเลือกการเมาท์จากมุมมองของผู้ใช้ปลายทางคืออะไร? ระบบไฟล์ถูกเมาท์ด้วยหนึ่งในตัวเลือกเหล่านี้จะทำงานได้เร็วกว่าถ้าติดตั้งกับอีกอันหรือไม่? ตัวเลือกใดเป็นค่าเริ่มต้นหากไม่มีการตั้งค่าไว้

man mountบอกว่าsyncตัวเลือกนั้นอาจลดอายุการใช้งานของหน่วยความจำแฟลช แต่อาจใช้ภูมิปัญญาดั้งเดิมที่ล้าสมัย อย่างไรก็ตามเรื่องนี้เกี่ยวข้องกับฉันเล็กน้อยเพราะฮาร์ดไดรฟ์หลักของฉันซึ่งมีพาร์ทิชัน/และ/homeวางอยู่เป็นไดรฟ์ SSD

ติดตั้งอูบุนตู (14.04) ไม่ได้ระบุsyncว่ามิได้asyncเลือกสำหรับ/พาร์ทิชัน แต่มีการตั้งค่าasyncสำหรับการด้วยตัวเลือก/home defaultsนี่คือของ/etc/fstabฉันฉันเพิ่มบางบรรทัดเพิ่มเติม (ดูความคิดเห็น) แต่ไม่เปลี่ยนแปลงอะไรในบรรทัดที่ติดตั้งโดย:

# / was on /dev/sda2 during installation
UUID=7e4f7654-3143-4fe7-8ced-445b0dc5b742 /     ext4  errors=remount-ro 0  1
# /home was on /dev/sda3 during installation
UUID=d29541fc-adfa-4637-936e-b5b9dbb0ba67 /home ext4  defaults          0  2
# swap was on /dev/sda4 during installation
UUID=f9b53b49-94bc-4d8c-918d-809c9cefe79f none  swap  sw                0  0

# here goes part written by me:

# /mnt/storage
UUID=4e04381d-8d01-4282-a56f-358ea299326e /mnt/storage ext4 defaults  0  2
# Windows C: /dev/sda1
UUID=2EF64975F6493DF9   /mnt/win_c    ntfs    auto,umask=0222,ro      0  0
# Windows D: /dev/sdb1
UUID=50C40C08C40BEED2   /mnt/win_d    ntfs    auto,umask=0222,ro      0  0

ดังนั้นถ้าฉัน/dev/sdaเป็น SSD ฉันควร - เพื่อลดการสึกหรอ - เพิ่มasyncตัวเลือกสำหรับ/และ/homeระบบไฟล์หรือไม่ ฉันควรตั้งค่าsyncหรือasyncตัวเลือกสำหรับพาร์ติชันเพิ่มเติมที่ฉันกำหนดไว้ใน/etc/fstab? วิธีการที่แนะนำสำหรับไดรฟ์ SSD และ HDD คืออะไร


1
อย่าข้ามโพสต์askubuntu.com/questions/502691/…
cuonglm

@Gnouc เกิดอะไรขึ้นกับการโพสต์ข้าม? อย่างไรก็ตามฉันลบโพสต์จาก Ask Ubuntu ตามที่คุณร้องขอ

2
ดูสิ่งนี้: meta.stackexchange.com/questions/64068/…
cuonglm

คำตอบ:


49

asyncเป็นสิ่งที่ตรงกันข้ามsyncซึ่งไม่ค่อยใช้ asyncเป็นค่าเริ่มต้นคุณไม่จำเป็นต้องระบุอย่างชัดเจน

ตัวเลือกsyncหมายความว่าการเปลี่ยนแปลงทั้งหมดของระบบไฟล์ที่เกี่ยวข้องจะถูกลบทิ้งในดิสก์ทันที กำลังรอการดำเนินการเขียนตามลำดับ สำหรับไดรฟ์เชิงกลที่หมายถึงช้าลงอย่างมากเนื่องจากระบบจะต้องย้ายหัวดิสก์ไปยังตำแหน่งที่เหมาะสม ด้วยsyncกระบวนการ userland ต้องรอให้การดำเนินการเสร็จสมบูรณ์ ในทางตรงกันข้ามกับasyncระบบบัฟเฟอร์การดำเนินการเขียนและปรับการเขียนจริง; ในขณะเดียวกันแทนที่จะถูกบล็อกกระบวนการใน userland จะยังคงทำงานต่อไป (หากเกิดข้อผิดพลาดให้close()ส่งคืน-1พร้อมerrno = EIO)

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

ในตอนท้ายของวันที่ไม่ได้รำคาญกับมันเป็นส่วนใหญ่มีแนวโน้มที่คุณปรับไปอยู่กับsyncasync


ในกรณีที่แอปพลิเคชันในพื้นที่กำลังลบและเขียนไปยังไดรฟ์ที่ติดตั้ง (ชี้ไปที่กล่อง Windows ภายนอก); อาจเป็นไปได้ว่าค่าเริ่มต้นโหมด async ไม่ปลอดภัยหรือไม่ สถานการณ์เป็นแอพการค้นหาโดยค้นหาในโฟลเดอร์เดียวบนเมานต์โดยทำการวางตำแหน่งโฟลเดอร์ย่อยแล้วลบออก
HellishHeat

@HellishHeat คุณควรถามคำถามนี้แยกต่างหากโดยมีรายละเอียดเพียงพอของสถานการณ์ที่คุณนึกไว้
ตอบโต้

ความเร็วของเลเยอร์การจัดเก็บข้อมูลที่แตกต่างกันคืออะไร ram คือนาโนวินาที, แฟลชเป็นไมโครวินาที (10 สำหรับการเขียน, ประมาณ 100 สำหรับการอ่าน), ดิสก์หมุนเป็นมิลลิวินาที (กรณีที่ดีที่สุด 5 มิลลิวินาที, 10 ถึง 100ms หากคิวดิสก์สำรอง เป็นแบบสุ่ม) เขียนไปยังตำแหน่งเดียวบนอุปกรณ์แฟลชอาจเขียนไปยังตัวเก็บประจุที่รองรับ SRAM และไม่สามารถเขียนไปยัง NAND ได้ตลอดเวลา ดังนั้นจึงเป็นเรื่องยากที่จะตรวจสอบการสึกหรอหรือความเร็วกระแทก
Brian Bulkowski

สิ่งนี้หมายความว่าไม่จำเป็นต้องโทรsyncหรือfsyncหรือfdatasyncsyscalls สำหรับการซิงค์ที่เมาท์ fs หรือไม่
CMCDragonkai

1
@ini asyncคุณอาจจะมีความเสี่ยงการสูญหายของข้อมูลด้วย กระนั้นหากนี่เป็นปัญหาก็syncไม่ได้เป็นคำตอบ - การลงโทษในเรื่องประสิทธิภาพsyncเป็นสิ่งต้องห้าม
Countermode

5

คำเตือน: การใช้ตัวเลือกการเมานท์ 'async' อาจไม่ใช่ความคิดที่ดีที่สุดหากคุณมีการเมานท์ที่ถูกเขียนลงไปอย่างต่อเนื่อง (เช่นบันทึกที่มีค่า, การบันทึกกล้องรักษาความปลอดภัย ฯลฯ ) และคุณจะไม่ได้รับการป้องกัน . มันอาจส่งผลให้บันทึกที่ขาดหายไปหรือข้อมูลที่ไม่สมบูรณ์ (ไร้ประโยชน์) ตัวอย่างที่ไม่ฉลาด: ลองนึกภาพโจรที่เข้าไปในร้านแล้วตัดสายไฟของกล้องทันที การบันทึกวิดีโอของตัวแบ่งถูกบันทึกไว้ แต่อาจไม่ได้ถูกฟลัช / ซิงค์กับดิสก์เนื่องจากมัน (หรือบางส่วน) อาจถูกบัฟเฟอร์ในหน่วยความจำแทนดังนั้นจึงหายไปเมื่อกล้องสูญเสียพลังงาน


เซิร์ฟเวอร์ที่ทันสมัยมีแคชของดิสก์ที่สำรองแบตเตอรีไว้ในคอนโทรลเลอร์ RAID ซึ่งจะป้องกันการสูญหายของข้อมูลแม้ในกรณีที่ไฟฟ้าดับ
tonioc

async ไม่ได้เขียนเป็นเวลาหลายวินาที? ประมาณกี่วินาที
Ini

@Ini ดูเหมือนว่ามันขึ้นอยู่กับระบบไฟล์ที่ใช้ฉันเชื่อว่า
bd1251252

ระบบปฏิบัติการควรตรวจสอบให้แน่ใจว่าเมื่อคุณปิดระบบทุกอย่างจะถูกเขียนไปยัง ssd / hdd ในกรณีที่ไฟฟ้าดับคุณอาจสูญเสียข้อมูลบางส่วน สิ่งที่ฉันพูดถูกต้องหรือไม่
Ini

แคชที่ใช้แบตเตอรี่ในดิสก์บางตัวนั้นไม่ใช่เหตุผลที่จะไม่ปรับการสูญเสียพลังงานให้เหมาะสม 1) นั่นเป็นเพียงเซิร์ฟเวอร์มืออาชีพที่มีราคาแพงเท่านั้น ไม่ใช่ผู้ใช้ทุกคนที่จะมี 2) มันจะช่วยคุณในสถานการณ์ที่ข้อมูลถึงตัวควบคุมดิสก์ทั้งหมด ในหลายกรณีมันจะติดอยู่ในแคชของระบบปฏิบัติการนานก่อนที่ตัวควบคุมจะเคยเห็นข้อมูลนั้นและจะหายไปในกรณีที่ไฟฟ้าขัดข้อง
Cray
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.