ในระบบที่ทันสมัยการใช้การบีบอัดดิสก์จะทำให้ประสิทธิภาพโดยรวมดีขึ้นหรือไม่


10

ดูเหมือนว่าการเพิ่มขึ้นของ CPU นั้นมีความเร็วของดิสก์ที่สูงกว่าชั่วครู่หนึ่ง สมมติว่าเดสก์ท็อปหรือแล็ปท็อปที่มีซีพียู Intel / AMD ดูอัลคอร์ที่ทันสมัยและดิสก์ SATA เฉลี่ยเดียวจะทำการบีบอัดบนดิสก์ทั้งหมดส่วนใหญ่ให้ประสิทธิภาพโดยรวมที่ดีขึ้นหรือไม่ โดยทั่วไปแล้วแบนด์วิดท์ของดิสก์ที่ลดลงจะใช้เพื่อให้โหลด CPU เพิ่มขึ้นหรือไม่ ฉันแน่ใจว่าคำตอบที่แท้จริงคือ "ขึ้นอยู่กับสิ่งที่คุณทำ" โดยการถามคำถามนี้ฉันหวังว่าจะมีคนที่ทำสิ่งนี้จบลงและยกตัวอย่างหรือข้อผิดพลาด


กำหนดประสิทธิภาพ ในการเพิ่มความเร็วหรือเพิ่มพื้นที่? คุณอาจจะไม่สังเกตเห็นการเพิ่มความเร็วใด ๆ แต่จะพบว่าไบต์ที่สำรองไว้มีประโยชน์อย่างแน่นอน! :-p
Christopher Lightfoot

คำตอบ:


9

ใช่การบีบอัดดิสก์สามารถให้ประสิทธิภาพที่ดีขึ้นภายใต้สถานการณ์เฉพาะ:

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

มีเหตุผลทั้ง ZFS และ Btrfs ทั้งการออกแบบเขตข้อมูลสีเขียวเมื่อเร็ว ๆ นี้รวมถึงข้อกำหนดสำหรับการบีบอัด

ในพื้นที่ HPC เมื่อแอปพลิเคชันตรวจสอบจากหน่วยความจำไปยังดิสก์ CPU มักจะไม่ทำสิ่งที่มีประโยชน์เลย เวลานี้เป็นค่าใช้จ่ายบริสุทธิ์เป็นหลัก การใช้ซีพียูใด ๆ เพื่อลดเวลานี้ถือเป็นชัยชนะ


สื่อการสตรีมดิสก์อาจเป็นสถานที่เดียวที่มีประโยชน์เกิดขึ้นเนื่องจากขนาดก้อนใหญ่พอ ดิสก์ระบบปฏิบัติการมาตรฐานจะใช้งานได้ทุกเมื่อ
Ryaner

5
การสตรีมสื่อไม่ใช่แอปพลิเคชั่นที่น่าสนใจสำหรับการบีบอัดระดับระบบจัดเก็บข้อมูล ข้อมูลควรถูกบีบอัดในรูปแบบเฉพาะแอปพลิเคชันที่ดีกว่ามากแล้ว
Phil Miller

5

การบีบอัดดิสก์จะไม่ทำให้ประสิทธิภาพดีขึ้น

อาจให้โทษเกือบไม่มีเนื่องจาก CPU ที่ทันสมัยอย่างรวดเร็ว แต่นั่นเป็นสิ่งที่แตกต่างอย่างสิ้นเชิง

คุณถือว่าการถ่ายโอนข้อมูลน้อยลงจาก / สู่ดิสก์สามารถปรับปรุงประสิทธิภาพได้ แต่การถ่ายโอนข้อมูลขนาดใหญ่นั้นแทบจะไม่เคยมีปัญหาคอขวด I / O เลย: คอขวดที่แท้จริงคือการแสวงหาเวลาและความล่าช้า ฮาร์ดดิสก์ที่ทันสมัยจริงๆรวดเร็วในการถ่ายโอนข้อมูลอย่างต่อเนื่องกับไฟล์ขนาดใหญ่สิ่งที่ช้าพวกเขาลงมีการโอนเงินเล็ก ๆ น้อย ๆ จากทั่วทุกมุมดิสก์

บางสถานการณ์:

  • ไฟล์มีเดีย โดยทั่วไปจะถูกบีบอัดด้วยตนเอง (JPEG, MPEG, MP3) ดังนั้นการบีบอัดไฟล์เหล่านั้นในระดับระบบไฟล์จะไม่ช่วยอะไรเลย มันจะแย่ลงกว่าเดิมเพราะทรัพยากรของ CPU จำเป็นต้องเข้ารหัส / ถอดรหัสแล้ว
  • ฐานข้อมูล โดยทั่วไปจะอ่านจาก / เขียนไปในการสุ่มแบบสุ่มเล็ก ๆ น้อย ๆ ดังนั้นการบีบอัดข้อมูลเหล่านั้นจะไม่เพียง แต่ไม่มีประโยชน์เลย แต่ยังลดประสิทธิภาพลงเนื่องจาก DBMS ไม่สามารถระบุตำแหน่งที่อยู่บนดิสก์ได้อย่างถูกต้อง เก็บไว้
  • แฟ้มเพจ. โดยปกติจะมีขนาดค่อนข้างใหญ่ แต่ระบบปฏิบัติการจำเป็นต้องจัดการกับข้อมูลขนาดเล็กมากและต้องทำอย่างแม่นยำมาก ("อ่าน 4K ที่ที่อยู่จริง X"); การบีบอัดมักจะเป็นไปไม่ได้ แต่ถึงแม้ว่ามันจะเป็นการสูญเสียเวลาและทรัพยากรอย่างสมบูรณ์: มันจะให้การบีบอัดเกือบเป็นศูนย์เนื่องจากลักษณะ "ข้อมูลสุ่มสมบูรณ์" ของไฟล์นี้

1
ดังนั้นการถ่ายโอนข้อมูลน้อยลงจากดิสก์จึงไม่มีประโยชน์?
kbyrd

แก้ไขเพื่อตอบคำถามนั้น :-)
Massimo

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

1
ฉันก็ลังเลที่จะพูดว่า "ไม่เคย" อาจมีบางสถานการณ์ที่แบนด์วิดท์ของดิสก์เป็นคอขวด แต่คุณอาจถูกต้องว่านี่ไม่ใช่กรณีทั่วไป
sleske

2
ดิสก์ i / o เป็นคอขวดในฐานข้อมูลเกือบทุกครั้ง
Nick Kavadias

3

มีสถานการณ์เฉพาะที่ทำสิ่งนี้ได้ในระดับต่อแอปพลิเคชันเช่นการบีบอัดวิดีโอ - ระบบที่ไม่สามารถอ่านวิดีโอคุณภาพระดับ HD ดิบเร็วพอจาก dsk สามารถอ่านข้อมูลที่บีบอัดและขยายโดยใช้หน่วยความจำและพลัง CPU . ไม่มีเหตุผลใดที่สิ่งนี้จะไม่สามารถเกิดขึ้นได้สำหรับสถานการณ์อื่น ๆ โดยเฉพาะ แต่สิ่งนี้สามารถจัดการได้ดีที่สุดในระดับแอปพลิเคชันดังนั้นวิธีการบีบอัดที่ใช้จะได้รับการปรับให้เหมาะสมกับวัตถุประสงค์ของพวกเขา

โปรดทราบว่าประสิทธิภาพการทำงานของการบีบอัดจะคุ้มค่าหากปริมาณงานเพิ่มขึ้นดังนั้นความคิดจะไม่ถูกไล่ออกจากมือ - ฉันไม่คิดว่าเราพร้อมสำหรับการใช้งานทั่วไปที่ต้องการเพิ่มประสิทธิภาพการบีบอัด แต่ก็เป็นไปได้ในทางทฤษฎี เพื่อแลกเปลี่ยนทรัพยากรที่คุณมีเกิน (CPU & หน่วยความจำ) สำหรับการเพิ่มที่อื่น (ข้อมูลทั้งหมดอ่านจากฮาร์ดไดรฟ์)


3

คุณตอบคำถามของคุณเอง! มันขึ้นอยู่กับคำตอบแน่นอน

ลักษณะทั่วไปที่ดีที่สุดที่ฉันสามารถทำได้คือ:

หากคุณมีแอปพลิเคชั่นฐานข้อมูลซึ่งเป็นข้อ จำกัด ในการอ่านดิสก์แล้วใช่! ประสิทธิภาพจะดีกว่า

ฉันไม่คิดว่านี่เป็นกรณีสำหรับกิจกรรมส่วนใหญ่ที่คุณทำบนเดสก์ท็อป / แล็ปท็อป

ในโดเมนของฉัน (SQL Server) ฉันรู้ว่าการรายงานฐานข้อมูลภายใต้โหลดการอ่านจำนวนมากสามารถทำงานได้ดีขึ้นหากใช้การบีบอัด ฉันรู้เหมือนกันว่าเป็นจริงสำหรับ mysql

Microsoft มีเอกสารทางเทคนิคเกี่ยวกับคุณลักษณะการบีบอัดข้อมูลใน SQL Server 2008 ไม่ว่าจะเป็นการอ่านที่เบาเว้นแต่ว่าคุณจะเป็น DBA แต่นี่เป็นแผนภูมิเดียวที่รองรับการใช้งานทั่วไปของฉัน:

ข้อความแสดงแทน


0

ความเร็วของ CPU นั้นเร็วกว่าความเร็วของดิสก์เสมอ IMHO การบีบอัดจะเพิ่มโอเวอร์เฮดและลดประสิทธิภาพลง


แต่มันขึ้นอยู่กับสิ่งที่คุณกำลังทำ :-)
จอช

งั้นเหรอ ค่าใช้จ่ายที่เพิ่มขึ้นคือค่าใช้จ่ายที่เพิ่มขึ้น คุณไม่สามารถซื้อเงินด้วยการใช้จ่ายเงิน (เว้นแต่จะเป็นเงินปลอม แต่เป็นอีกเรื่องหนึ่ง)
Mark Henderson

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

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

0

ฉันกำลังอ่านบางสิ่งที่คล้ายกับเมื่อวานนี้เกี่ยวกับ OSX และเป็นการบีบอัดของระบบไฟล์ - โดยทั่วไปคำตอบจะหมุนรอบสิ่งที่คุณต้องการบีบอัด - ในตัวอย่างนี้เขาพูดถึงข้อมูล "FAT"; โครงสร้างไฟล์, คุณสมบัติ, ข้อมูลเมตา ฯลฯ ที่เก็บไว้ด้วยกันสามารถบีบอัดเพื่อประหยัดพื้นที่และสามารถอ่านลงใน cpu ได้เร็วกว่าการค้นหาหัวทั่วสถานที่เพื่อค้นหาข้อมูลสำหรับแต่ละไฟล์ ...

อย่างไรก็ตามควรอ่านถ้าคุณคิดเกี่ยวกับสิ่งต่าง ๆ :-p

แต่การบีบอัดไม่ได้เกี่ยวกับการประหยัดเนื้อที่ดิสก์เท่านั้น นอกจากนี้ยังเป็นตัวอย่างคลาสสิกของการซื้อขายรอบ CPU สำหรับเวลาแฝงของ I / O และแบนด์วิดท์ที่ลดลง ในช่วงสองสามทศวรรษที่ผ่านมาประสิทธิภาพของ CPU ได้ดีขึ้น (และทรัพยากรการประมวลผลที่มากมายกว่านั้น - มากขึ้นในภายหลัง) ในอัตราที่เร็วกว่าประสิทธิภาพของดิสก์ที่เพิ่มขึ้น ฮาร์ดดิสก์ที่ทันสมัยค้นหาเวลาและความล่าช้าในการหมุนยังคงวัดเป็นมิลลิวินาที ในหนึ่งมิลลิวินาที CPU 2 GHz ผ่านสองล้านรอบ และแน่นอนว่ายังมีเวลาในการถ่ายโอนข้อมูลจริงที่ต้องพิจารณา

ได้รับการแคชหลายระดับทั่วทั้งระบบปฏิบัติการและงานฮาร์ดแวร์อย่างมากเพื่อซ่อนความล่าช้าเหล่านี้ แต่บิตเหล่านั้นจะต้องหลุดออกจากดิสก์ในบางจุดเพื่อเติมแคชเหล่านั้น การบีบอัดหมายความว่าต้องมีการถ่ายโอนบิตน้อยลง เนื่องจากทรัพยากร CPU เกือบเต็มไปด้วยความตลกขบขันบน Mac แบบ multi-core ที่ทันสมัยภายใต้การใช้งานปกติเวลาทั้งหมดที่ต้องใช้ในการถ่ายโอนข้อมูลที่ถูกบีบอัดจากดิสก์และใช้ CPU เพื่อขยายเนื้อหาลงในหน่วยความจำมักจะน้อยกว่าเวลา มันจะใช้ในการถ่ายโอนข้อมูลในรูปแบบที่ไม่มีการบีบอัด

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

หากมีสิ่งหนึ่งที่ทำให้ฮาร์ดดิสก์ช้าลงมากกว่าการถ่ายโอนข้อมูลจำนวนมากก็จะเป็นการย้ายหัวจากส่วนหนึ่งของดิสก์ไปยังอีกส่วนหนึ่ง ทุกการเคลื่อนไหวหมายถึงเวลาที่ศีรษะจะเริ่มเคลื่อนไหวจากนั้นหยุดจากนั้นตรวจสอบให้แน่ใจว่าอยู่ในตำแหน่งที่ถูกต้องเหนือตำแหน่งที่ต้องการจากนั้นรอให้แผ่นดิสก์หมุนเพื่อวางบิตที่ต้องการไว้ด้านล่าง สิ่งเหล่านี้ล้วนเป็นของจริงทางกายภาพชิ้นส่วนที่เคลื่อนไหวได้และมันน่าทึ่งมากที่พวกเขาเต้นได้อย่างรวดเร็วและมีประสิทธิภาพเหมือนที่พวกเขาทำ แต่ฟิสิกส์มีข้อ จำกัด การเคลื่อนไหวเหล่านี้เป็นตัวฆ่าประสิทธิภาพที่แท้จริงสำหรับการจัดเก็บในลักษณะการหมุนเช่นฮาร์ดดิสก์

รูปแบบปริมาณ HFS + เก็บข้อมูลทั้งหมดเกี่ยวกับไฟล์ - ข้อมูลเมตาในสองตำแหน่งหลักบนดิสก์: ไฟล์แคตตาล็อกซึ่งเก็บวันที่ของไฟล์, สิทธิ์, ความเป็นเจ้าของและโฮสต์ของสิ่งอื่น ๆ และไฟล์คุณสมบัติที่เก็บ "ชื่อส้อม ."

แอ็ตทริบิวต์ส่วนขยายใน HFS + ถูกนำไปใช้เป็นชื่อ forks ในไฟล์คุณสมบัติ แต่แตกต่างจากส้อมทรัพยากรซึ่งอาจมีขนาดใหญ่มาก (สูงสุดขนาดไฟล์สูงสุดที่รองรับโดยระบบไฟล์) แอตทริบิวต์เพิ่มเติมใน HFS + จะถูกจัดเก็บ "inline" ใน Attributes File ในทางปฏิบัติหมายถึงขีด จำกัด ประมาณ 128 ไบต์ต่อแอตทริบิวต์ แต่ก็หมายความว่าหัวดิสก์ไม่จำเป็นต้องเดินทางไปยังส่วนอื่นของดิสก์เพื่อรับข้อมูลจริง

อย่างที่คุณสามารถจินตนาการได้ว่าบล็อกดิสก์ที่ประกอบขึ้นเป็นไฟล์ Catalog และ Attributes นั้นมีการเข้าถึงบ่อยครั้งและมีแนวโน้มที่จะอยู่ในแคชมากกว่าที่อื่น แผนการทั้งหมดนี้เพื่อให้การจัดเก็บไฟล์สมบูรณ์รวมทั้งข้อมูลเมตาของข้อมูลในแคตตาล็อก B-tree-Structured และไฟล์แอตทริบิวต์จะชนะประสิทธิภาพโดยรวม แม้แต่ส่วนบรรจุข้อมูลแปดไบต์ที่ลูกโป่งถึง 25 ไบต์ไม่เป็นปัญหาตราบใดที่ยังคงมีขนาดน้อยกว่าขนาดบล็อกการจัดสรรสำหรับการจัดเก็บข้อมูลปกติและตราบใดที่มันพอดีกับโหนด B-tree ในไฟล์คุณสมบัติที่ ระบบปฏิบัติการต้องอ่านอย่างครบถ้วนแล้ว

มีการสนับสนุนที่สำคัญอื่น ๆ ถึงรอยเท้าบนดิสก์ที่ลดลงของ Snow Leopard (เช่นการลบการแปลที่ไม่จำเป็นและไฟล์ "designable.nib") แต่การบีบอัด HFS + นั้นน่าสนใจมากที่สุดทางเทคนิค

จาก: http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/3


ฉันเคยคิดเกี่ยวกับเรื่องนี้มาก่อน แต่บทความที่แน่นอนนั้นกระตุ้นให้ฉันโพสต์คำถามนี้
kbyrd

ฮ่า ๆ. น่าสนใจ :-p
Christopher Lightfoot

0

การบีบอัด Microsoft Disk น่าเกลียด OLD มันแทบจะไม่สามารถเทียบเคียงในอัตราส่วนกับวิธี ARJ จาก 80 แต่ถึงกระนั้นการบีบอัดของ Microsoft ก็สามารถให้ประสิทธิภาพที่ดีกว่าบนฮาร์ดไดรฟ์ที่ช้ามาก (แล็ปท็อป) โดยเฉพาะอย่างยิ่งถ้ามี RAM เพียงพอสำหรับการเขียนแคชและป้องกันการเขียนมากเกินไป

กระบวนการเขียนเป็นจุดอ่อนของวิธีการบีบอัดที่เปิดใช้งานการเข้าถึงแบบสุ่ม

ดังนั้นหากคุณต้องการไดรฟ์บีบอัดคุณควรย้ายไปใช้ Linux บางประเภท

การบีบอัดดิสก์นั้นเหมาะสำหรับไดรฟ์แรมไม่จำเป็นต้องบอกสาเหตุ


1
คุณสามารถเพิ่มข้อมูลสนับสนุนได้หรือไม่อาจเปรียบเทียบประสิทธิภาพระหว่างโซลูชัน Windows และ Linux
สดุดี

ใช่ถ้าคุณกำลังจะชนด้ายอายุ 3.5 ปีคุณควรนำข้อเท็จจริงใหม่ ๆ มาให้
MDMarra

-1

หวาดระแวง การบีบอัดและคลายการบีบอัดนั้นเกี่ยวข้องกับมากกว่าเพียงแค่ดิสก์และ CPU โดยเฉพาะอย่างยิ่งจะมีการถ่ายโอนข้อมูลจำนวนมากไปยังและจากหน่วยความจำ (นอกเหนือจากค่าใช้จ่ายการโอนมาตรฐานโดยไม่มีการบีบอัด) ซึ่งจะเจ็บจริง ๆ ในแง่ของความผิดพลาดของหน้า


-1

ในระยะสั้นไม่คุณอาจไม่ได้รับประสิทธิภาพ

ในขณะที่การบีบอัดจะปรับปรุงประสิทธิภาพของที่เก็บข้อมูลของคุณ แต่จะลดความเร็วโปรเซสเซอร์ของคุณลงอย่างมาก มันอาจเป็นไฟล์ประเภทที่คุณกำลังคลายการบีบอัด หากคุณจัดการกับคำศัพท์เพียงอย่างเดียว excel และประเภทไฟล์พื้นฐานอื่น ๆ ให้ดำเนินการต่อและบีบอัดไฟล์เหล่านั้น หากไฟล์แต่ละไฟล์มีขนาดใหญ่ขึ้นคุณจะเสียเวลามากขึ้น

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