ทำไมคนส่วนใหญ่แนะนำให้ลดความว่องไวเป็น 10-20


65

ฉันเคยเห็นในหลาย ๆ เว็บไซต์แล้วซึ่งแนะนำให้ลดความว่องไวเป็น 10-20 เพื่อประสิทธิภาพที่ดีขึ้น

มันเป็นตำนานหรือไม่? นี่เป็นกฎทั่วไปหรือไม่ ฉันมีแล็ปท็อปที่มี 4GB Ram และ SSD ขนาด 128GB คุณควรค่าเท่าไรสำหรับ swappiness ของฉัน

ขอบคุณ


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

คำตอบ:


88

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

โดยรวมแล้วการตั้งค่าเริ่มต้นส่งผลให้ประสิทธิภาพโดยรวมและเสถียรภาพที่ดี ฉันขอแนะนำให้ทิ้งไว้เป็นค่าเริ่มต้น มีช่องทางเพิ่มเติมสำหรับ Linux ในการปรับปรุงการจัดการหน่วยความจำเพื่อแก้ไขปัญหาบางกรณี แต่โดยการควบคุม swappiness ที่มีขนาดใหญ่นั้นไม่ใช่วิธีแก้ปัญหาที่ดี - ปรับในทิศทางเดียวและคุณอาจแก้ไขปัญหาหนึ่งและสร้างปัญหาอื่น ๆ หากเป็นไปได้เพียงแค่ติดตั้ง RAM ที่มีอยู่จริง (และปล่อยทิ้งไว้เพียงลำพัง) eclipses การแก้ไขอื่น ๆ ทั้งหมด

Linux ใช้ RAM อย่างไร

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

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

หากแอปพลิเคชันเพิ่มการใช้หน่วยความจำมากยิ่งขึ้น - สมมติว่าคุณไม่มีพื้นที่สว็อป - คุณจะไม่เพียง แต่ไม่มีที่ว่างสำหรับแคช แต่ในที่สุดคุณจะมีหน่วยความจำไม่เพียงพอและระบบของคุณจะต้องหยุดกระบวนการทำงาน กระบวนการฆ่านั้นแย่กว่าการชะลอตัวลงเนื่องจากจะทำให้ระบบที่ไม่แน่นอนและไม่แน่นอนคาดเดาได้

Linux ใช้การแลกเปลี่ยนอย่างไร

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

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

ระบบของคุณมีการตั้งค่า "swappiness" ซึ่งจะช่วยให้คุณปรับแต่งวิธีคำนวณ "ความดัน" นี้ มันมักจะแสดงอย่างไม่ถูกต้องว่าเป็น "เปอร์เซ็นต์ของ RAM" แต่ไม่ใช่มันเป็นเพียงค่าที่ใช้เป็นส่วนหนึ่งของสูตร ค่าประมาณ 40 ถึง 60 เป็นค่าสติที่แนะนำ 60 เป็นค่าเริ่มต้นในปัจจุบัน

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

เกิดอะไรขึ้นเมื่อระบบจมลงและสลับอย่างหนัก

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

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

แล้วระบบเดสก์ท็อปล่ะ พวกเขาไม่ต้องการแนวทางอื่นหรือ

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

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

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

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

การรักษาที่มีประสิทธิภาพมากที่สุดคือการติดตั้ง RAM เพิ่มเติมถ้าคุณสามารถซื้อได้

การสลับสามารถปิดการใช้งานในระบบที่มีแรมเยอะหรือไม่?

หากคุณมี RAM มากกว่าที่คุณต้องการสำหรับแอพพลิเคชั่นคุณจะต้องสลับกันบ่อยครั้ง การปิดใช้งานการสลับอาจจะไม่ทำให้เกิดความแตกต่างได้ แต่ถ้าคุณมี RAM มากมายการเปิดใช้งานการสลับจะไม่ได้รับโทษใด ๆ เพราะระบบไม่สลับเมื่อไม่ต้องการ

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

แต่การสลับความเร็วของระบบได้อย่างไร ไม่ได้แลกเปลี่ยนสิ่งที่ช้าลงหรือไม่

การถ่ายโอนข้อมูลจาก RAM ไปยัง swap เป็นการทำงานที่ช้า แต่จะใช้ก็ต่อเมื่อเคอร์เนลค่อนข้างแน่ใจว่าประโยชน์โดยรวมซึ่งเป็นผลมาจากการรักษาขนาดแคชที่เหมาะสมจะมีค่ามากกว่านี้

เมื่อข้อมูลอยู่ในการแลกเปลี่ยนข้อมูลจะออกมาอีกเมื่อใด

ส่วนใด ๆ ของหน่วยความจำที่กำหนดไว้จะกลับมาจากการสลับทันทีที่ใช้ - อ่านหรือเขียน อย่างไรก็ตามโดยทั่วไปหน่วยความจำที่เปลี่ยนเป็นหน่วยความจำที่ไม่ได้เข้าถึงในเวลานานและไม่คาดว่าจะต้องใช้ในไม่ช้า

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

มีกรณีใดบ้างที่การลดความว่องไวมีความเหมาะสม?

ใช่. หากคุณใช้งานเซิร์ฟเวอร์เฉพาะแอปพลิเคชันเซิร์ฟเวอร์หนึ่งตัวที่ไม่ได้รับประโยชน์จากแคชของระบบ เซิร์ฟเวอร์ฐานข้อมูลบางตัวเช่นเซิร์ฟเวอร์ Oracle, MySQL / MariaDB แนะนำในบางกรณีลดความรวดเร็วลงเหลือ 1 ถึง 10 เนื่องจากเอ็นจิ้นฐานข้อมูลเหล่านี้ใช้แคชของตัวเอง

โปรดทราบว่านี่เป็นความจริงเฉพาะในกรณีที่ระบบของคุณทุ่มเทให้กับงานนั้นและในกรณีของ MySQL / MariaDB เฉพาะในกรณีที่คุณใช้ InnoDB หรือ XtraDB ล้วนๆไม่ใช่ MyISAM หรือ Aria เป็นต้น


ขอบคุณสำหรับคำอธิบายอย่างละเอียด ฉันคิดว่าในกรณีของฉัน (4GB Ram และ 128GB SSD ยาก) และด้วยการใช้งานของฉัน (การพัฒนา Java EE และหลาย OS ในกล่อง vitual) swappiness = 20 เหมาะ คุณคิดอย่างไร?
Saeed Zarinfam

ฉันคิดว่าค่าเริ่มต้นของ 60 จะดีที่สุดในความคิดของฉัน
thomasrutter

4
@BlancaHiggins คุณอ่านโพสต์ที่คุณแสดงความคิดเห็นไว้หรือไม่ ความคิดเห็นของคุณดูเหมือนจะไม่ได้อธิบายว่าจริง ๆ แล้วทำ swappiness อะไร
thomasrutter

1
นี่คือคำตอบที่ยอดเยี่ยม ขอบคุณมากสำหรับคำอธิบายที่ดี
Dan Barron

2
ส่วนหนึ่งของข้อมูลใน SwapFaq นั้นทำให้เข้าใจผิดในความคิดของฉัน: การตั้งค่าเป็น 100 จะเป็นการแลกเปลี่ยนแบบ "ก้าวร้าว" ฉันคิดว่ามันแม่นยำกว่าที่จะบอกว่าเป็นการตั้งค่าที่ระมัดระวังและใช้งานได้ดีสลับกับสัญญาณแรกว่าหน่วยความจำหรือแคชที่มีอยู่ลดลงเล็กน้อย ในขณะที่การตั้งค่าที่ต่ำเช่น 10 มีความเสี่ยงมากกว่าการตั้งค่าที่น่าตื่นเต้นหลีกเลี่ยงการทำการสลับใด ๆ จนกว่าหน่วยความจำที่มีอยู่จะต่ำมากและแคชก็หายไปอย่างสมบูรณ์มากโดยออกจากระบบโดยไม่มีห้องสั่น
thomasrutter

14

บนเดสก์ท็อปปกติคุณมีงาน 4-5 งานที่ใช้หน่วยความจำ 50-60% หากคุณตั้งค่า swappiness เป็น 60 แล้วหน้างาน ACTIVE ประมาณ 1 / 4-1 / 3 จะถูกสลับออก ซึ่งหมายความว่าสำหรับการเปลี่ยนแปลงงานทุกครั้งสำหรับแท็บใหม่ที่คุณเปิดทุกครั้งสำหรับการเรียกใช้ JS ทุกครั้งจะมีกระบวนการสลับสับเปลี่ยน

วิธีแก้ปัญหาคือการตั้งค่า swappiness เป็น 10 จากการสังเกตการปฏิบัติจริงนี้ทำให้ระบบเลิกใช้แคชของดิสก์ io (ที่ไม่มีบทบาทใด ๆ บนเดสก์ท็อปเนื่องจากแคชการอ่าน / เขียนไม่ได้ใช้เลยยกเว้นว่าคุณคัดลอก LARGE อย่างต่อเนื่อง ไฟล์) แทนการกดปุ่มอะไรก็ได้ในการสลับ ในทางปฏิบัตินั่นหมายถึงระบบจะปฏิเสธที่จะสลับหน้าตัดแคช io แทนเว้นแต่จะได้รับความนิยมใช้หน่วยความจำ 90% และนั่นก็หมายถึงการใช้งานเดสก์ท็อปที่ราบรื่นไม่สะดุดและรวดเร็ว

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

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

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

เดสก์ท็อปไม่ได้สนใจดิสก์ io มากนักเนื่องจากเดสก์ท็อปมักจะอ่านและเขียนข้อมูลส่วนใหญ่ที่ทำซ้ำได้ในแคช การตัดบนดิสก์ io เพื่อป้องกันการ swaping มากที่สุดเป็นที่นิยมมากกว่าบนเดสก์ท็อปมากกว่าที่จะมีหน่วยความจำ 30% ที่สงวนไว้สำหรับดิสก์แคชที่มี RAM 30% (เต็มไปด้วยบล็อกของแอปพลิเคชันที่ใช้งาน)

เพียงแค่เปิดตัวฮ็อพเปิดเบราว์เซอร์ GIMP, LibreOffice - โหลดเอกสารจำนวนเล็กน้อยจากนั้นเรียกดูเป็นเวลาหลายชั่วโมง มันง่ายมากจริงๆ


3
คำอธิบายความแตกต่างของ +1 สำหรับเซิร์ฟเวอร์เทียบกับเดสก์ท็อป ดิสก์แคชของเซิร์ฟเวอร์สามารถทำได้ในฟิลด์ดิสก์
Dee

หากเป็นกรณีนี้ทำไม Ubuntu และ Ubuntu ทั้งรุ่นบนเดสก์ท็อปถึงมีค่าเริ่มต้นที่ 60 หากสิ่งที่คุณระบุไว้เป็นความจริงก็จะทำให้การใช้งานเดสก์ท็อปเวอร์ชันเริ่มต้นมีค่าเริ่มต้นเท่ากับ 20 หรือ 10 แต่ไม่มีความเหมาะสม
JAB

1
การอ้างอิงถึงนัยที่ว่าการใช้ swappiness นั้นเป็นเปอร์เซ็นต์ของ ram โดยตรงที่เปลี่ยนไปหรือไม่? ฉันไม่คิดว่ามันจะทำงานอย่างนั้น
Xen2050

1
มันไม่ได้ Swappiness ไม่เกี่ยวข้องกับเปอร์เซ็นต์ของ RAM เป็นปุ่มที่ปรับแต่งอัลกอริทึมคลุมเครือต่อการแลกเปลี่ยนมากหรือน้อยในสถานการณ์ปัญหาที่กำหนด ฉันคิดว่าคำอธิบายของเวิร์กโหลดของเซิร์ฟเวอร์เทียบกับเดสก์ท็อปในคำตอบนี้ทำให้มีข้อสันนิษฐานมากมายที่ไม่ได้ถืออยู่เสมอ
thomasrutter

9

หากคุณเรียกใช้เซิร์ฟเวอร์ Java บนระบบ Linux คุณควรพิจารณาลด swappiness ลงอย่างมากจากค่าเริ่มต้นที่ 60 ดังนั้น 20 จึงเป็นการเริ่มต้นที่ดี การสลับเป็นนักฆ่าสำหรับกระบวนการรวบรวมขยะเพราะการรวบรวมแต่ละครั้งจำเป็นต้องสัมผัสส่วนใหญ่ของหน่วยความจำกระบวนการ ระบบปฏิบัติการไม่ได้มีวิธีการตรวจสอบกระบวนการดังกล่าวและทำให้สิ่งที่ถูกต้องสำหรับพวกเขา วิธีปฏิบัติที่ดีที่สุดคือหลีกเลี่ยงการสลับสับเปลี่ยนมากที่สุดเท่าที่จะทำได้สำหรับแอปพลิเคชันเซิร์ฟเวอร์ที่มีประสิทธิผล


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

4

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

สำหรับวิดีโอบทแนะนำอย่างง่ายเกี่ยวกับวิธีการทำเช่นนี้พร้อมคำอธิบายแบบเต็มดูวิดีโอ YouTube ด้านล่าง

http://youtu.be/i6WihsFKJ7Q


1
วิดีโอที่ยอดเยี่ยมที่คุณทำ แต่วิดีโอนั้นไม่ได้ตอบคำถามโดยตรงจริงๆมันเป็นวิธีการเปลี่ยนความรวดเร็วมากขึ้น
jmunsch

+1 สำหรับ SSD คำใบ้ชีวิตสำหรับ SSD นั้นดีที่สุดถ้าระบบมากที่สุดอ่านได้อย่างเดียวส่วนที่เหลือควรอยู่ในหน่วยความจำและวันนี้หน่วยความจำมักจะไม่ใช่ปัญหาใหญ่สำหรับพีซีเดสก์ท็อปปัจจุบัน
Dee

3

ฉันต้องการเพิ่มมุมมองจากวิศวกรประสิทธิภาพข้อมูลขนาดใหญ่เพื่อให้พื้นหลังเพิ่มเติมเกี่ยวกับเทคโนโลยี 2017

ประสบการณ์ส่วนตัวของฉันคือในขณะที่ฉันปิดใช้งานการแลกเปลี่ยนเพื่อรับประกันว่าระบบของฉันกำลังทำงานที่ความเร็วสูงสุดบนเวิร์กสเตชันของฉันสำหรับปัญหาที่เฉพาะเจาะจงฉันพบว่าความรวดเร็วของ 1 และ 10 นำไปสู่การแช่แข็ง (ตลอดไป) และหยุดชั่วคราว ความคล่องแคล่ว 80 สำหรับแอปพลิเคชันนี้นำไปสู่ประสิทธิภาพที่ดีขึ้นมากและหยุดชั่วคราวสั้นกว่าค่าเริ่มต้น (60) โปรดทราบว่าฉันมี 8GB RAM และแลกเปลี่ยน 4x 256GB โดย HDD 1 ตัว ปกติแล้วฉันจะระบุสถิติที่แม่นยำที่เห็นได้ในมาตรฐานและรายละเอียดฮาร์ดแวร์ทั้งหมด แต่ฉันยังไม่ได้ทำและเป็นเดสก์ท็อปต่ำสุดที่ไม่สำคัญที่นี่

กลับมาที่ บริษัท เดิมของฉันเหตุผลที่เราไม่เปิดใช้งาน swappiness บนเซิร์ฟเวอร์ Spark ที่มี [500GB ถึง 4TB] x [10-100] โหนดคือเราเห็นประสิทธิภาพที่ไม่ดีเป็นเครื่องหมายในการออกแบบท่อข้อมูลและโครงสร้างข้อมูลใหม่ให้มีประสิทธิภาพมากขึ้น ลักษณะ. เราไม่ต้องการเปรียบเทียบ HDD / SSD ด้วย นอกจากนี้การสลับแรมจะต้องใช้ 10-30 ดิสก์ต่อโหนดด้วยการเขียนแบบขนานเพื่อลดเวลาในการเข้าถึงดิสก์

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

สำหรับผู้ที่คิดว่าการมีความว่องไวมากขึ้นเป็นคำแนะนำที่ไม่ดีนี่เป็นมุมมองเล็กน้อย ในอดีต HDs มีแคชเพียงไม่กี่กิโลไบต์หากมี อินเตอร์เฟสคือ IDE / Parallel ATA ซีพียูบัสก็ช้าลงมากพร้อมกับ RAM และสิ่งอื่น ๆ อีกมากมาย กล่าวโดยสรุประบบช้ามาก (เทียบกับทุกวันนี้) ในทุก ๆ ด้าน เมื่อสองสามปีก่อน HDDs ใช้ SATA3 วันนี้พวกเขาใช้โปรโตคอล NVMe ซึ่งมีการปรับปรุงเวลาแฝงที่สำคัญ HDs มีแคชจำนวนมาก และส่วนที่น่าสนใจที่สุดคือเมื่อคุณใช้ SSD ที่ทันสมัย ​​(ความอดทนในการอ่าน / เขียนที่มีเสถียรภาพและสมบูรณ์แบบ) กับ NVMe หรือ PCIe เพื่อเป็นพื้นที่เก็บข้อมูลของคุณ มันเป็นการประนีประนอมที่ดีที่สุดระหว่างต้นทุนกับประสิทธิภาพ โปรดอย่าลองสิ่งนี้ด้วย SSD ราคาถูกหรือเก่า

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


1

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

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