Swappiness: วิธีปรับการใช้หน่วยความจำเสมือน

หน่วยความจำเสมือน swappiness

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

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

ดังนั้นการใช้พาร์ติชัน swap ควร จำกัด เฉพาะในสถานการณ์ที่ไม่มีทางเลือกอื่นนอกจากใช้ในเวลานั้นจะรองรับหน่วยความจำหลัก (ซึ่งก็คือ RAM) ถ้าเราใช้มันตลอดเวลาบางครั้งถึงก่อน RAM ประสิทธิภาพของเราจะถูกลงโทษ มาดูกันดีกว่า วิธีปรับการใช้หน่วยความจำเสมือนใน Linux โดยใช้คำสั่ง Swappiness.

ในระบบปฏิบัติการของเราการสร้างหน่วยความจำเสมือนมักจะดำเนินการในระหว่างขั้นตอนการติดตั้งซึ่งในเวลานั้นเรากำหนดพาร์ติชันรูท (/) พาร์ติชันหน่วยเก็บข้อมูล (/ home) และพาร์ติชันแลกเปลี่ยนหรือ swap ซึ่งโดยปกติจะใช้กับพาร์ติชัน / dev / sda5. พารามิเตอร์เคอร์เนลที่จัดการการใช้หน่วยความจำเสมือนคือความรวดเร็วที่กล่าวถึงก่อนหน้านี้และโดยทั่วไปเราสามารถพูดได้ว่ามีหน้าที่กำหนดความถี่ที่เราเข้าถึงพาร์ติชัน swap และจำนวนเนื้อหาที่เราคัดลอกผ่านอาร์กิวเมนต์ที่แตกต่างกันระหว่าง 0 และ 100

ค่าดีฟอลต์ในการติดตั้ง Linux คือ 60แต่เป็นเรื่องง่ายที่จะสรุปการกำหนดค่าฮาร์ดแวร์บางอย่างไม่เหมือนกันดังนั้นจึงไม่สมเหตุสมผลที่จะรักษาระดับนั้นไม่ว่าจะเป็นของเรา ค่านี้ถูกเก็บไว้ในไฟล์ / proc / sys / vm / swappiness และเราสามารถตรวจสอบได้โดย:

cat / proc / sys / vm / swappiness

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

ดังนั้นสิ่งที่เราต้องทำคือป้อนคำสั่งต่อไปนี้จากเทอร์มินัล (Ctrl + Alt + T):

sudo sysctl vm.swappiness = 10

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

sudo นาโน /etc/sysctl.conf

หลังจากนั้นเราจะค้นหาข้อความ vm.swappiness = และเพิ่มค่าที่ต้องการหลังสัญลักษณ์ "=" เราบันทึกไฟล์และตอนนี้การเปลี่ยนแปลงจะเป็นแบบถาวร


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Cesflo dijo

    อธิบายได้ดีเยี่ยม !!! บทความดีมาก !! ในกรณีของฉันเมื่อฉันทำการเปลี่ยนแปลงนี้เมื่อรีสตาร์ทโน้ตบุ๊กมันจะกลับไปเป็นค่าดั้งเดิมที่ 60 มันเหมือนกับว่าไฟล์ถูกบันทึกไว้ แต่เมื่อรีสตาร์ทมันเป็น "ฟอร์แมต" ฉันลองทุกอย่างแล้วไม่ประสบความสำเร็จคุณมีความคิดว่าจะเกิดอะไรขึ้นบ้างไหม? ฉันมี Ram 1GB

    ขอบคุณ!

    1.    วิลลี่ไคล dijo

      สวัสดีCésarฉันดีใจที่คุณคิดว่ามันน่าสนใจ

      หากค่าสูญหายเมื่อระบบรีบูตฉันจะดูที่ /etc/rc.local และสคริปต์เริ่มต้นอื่น ๆ (จะแตกต่างกันไปตามแต่ละ distro) เนื่องจากอาจเป็นไปได้ว่าสิ่งนี้ถูกตั้งไว้เมื่อเริ่มต้น

      ทักทาย!

  2.   ปาสชวลมาร์ติน dijo

    คำอธิบายดีมาก!

    ในฐานะที่เป็นส่วนเสริมนี่เป็นอีกหนึ่งสิ่งที่น่าสนใจเกี่ยวกับ Swap และ swappiness ใน Linux:

    http://www.sysadmit.com/2016/10/linux-swap-y-swappiness.html

  3.   สภาพผู้ชม dijo

    คุณไม่รู้ว่าสิ่งนี้ดีแค่ไหนสำหรับฉันขอบคุณ

  4.   คลีรีโก dijo

    ขอแสดงความนับถือ

    ใน /etc/sysctl.conf ของฉันไม่ใช่ข้อความ vm.swappiness = ฉันมองหามันอย่างดีไฟล์มีขนาดเล็ก บทความระบุว่าให้ค้นหาและแก้ไขค่าไม่ใช่เพิ่มบรรทัดเว้นแต่คุณจะต้องเพิ่ม

  5.   ลูอิส dijo

    ขอแสดงความนับถือ

    ใน /etc/sysctl.conf ของฉันไม่มี vm.swappiness = text บทความระบุว่าให้ค้นหาและแก้ไขค่าไม่ใช่เพิ่มบรรทัดเว้นแต่คุณจะต้องเพิ่ม

  6.   Nosferatus dijo

    คุณต้องสร้างมันในตอนท้ายของไฟล์ที่คุณใส่ vm.swappiness = 10 เท่านี้ก็เสร็จเรียบร้อย

    หากไม่บันทึกเมื่อรีสตาร์ทอาจเป็นเพราะคุณไม่ได้ใช้คำสั่ง sudo

    Ubuntu: sudo gedit /etc/sysctl.conf
    Xubuntu: sudo mousepad /etc/sysctl.conf

  7.   santiago dijo

    บทความยอดเยี่ยม ขอบคุณ!

  8.   โรแบร์โต dijo

    คุณสามารถใส่ศูนย์ มีปัญหาอะไรบ้าง?

  9.   Jose Castillo Ávalos dijo

    สวัสดีและขอบคุณ Willy Clew สำหรับบทความของคุณที่ทำให้ฉันเข้าใจกระบวนการใช้หน่วยความจำ swapp ได้อย่างชัดเจน แต่ทำให้ฉันเกิดข้อสงสัยอย่างมากเพราะเมื่อเข้าสู่เทอร์มินัลและดำเนินการตามคำสั่งที่คุณระบุมันจะส่งคืนข้อความที่ระบุว่า:

    bash: cat / proc / sys / vm / swappiness: ไม่มีไฟล์หรือไดเร็กทอรี

    สิ่งนี้เกิดจากอะไรได้บ้าง?

    1.    Andres Choque Lopez dijo

      คุณเขียนไม่ดี คุณไม่ได้เว้นวรรคหลัง "cat"

  10.   ไอซ์มอดดิ้ง dijo

    เยี่ยมมากเราแบ่งปันในกลุ่ม ubuntu เป็นภาษาสเปน https://t.me/ubuntu_es

  11.   Smith dijo

    มันใช้งานได้ดีสำหรับฉันใน Debian 10.9

  12.   จอห์น dijo

    ฉันเป็นนักวิทยาศาสตร์คอมพิวเตอร์ ฉันได้ติดตั้งและทดสอบ distros หลายตัว ตัวเลือกที่ดีที่สุดในการกำหนดค่าความสลับไปมาคือการเขียนในเทอร์มินัล

    sudo นาโน /etc/sysctl.conf

    หลังจากกด Enter ให้เขียนคีย์แล้ว Enter อีกครั้ง จากนั้นให้เขียนต่อท้ายบรรทัดต่อไปนี้

    vm.swappiness = 0

    แล้วกด ctrl กับ x พร้อมกัน เขาสร้างคำถามว่าถ้าจะเซฟประโยคใหม่ในไฟล์ ให้กดปุ่ม Y เพื่อบอกว่า yes และ n เพื่อไม่ให้เซฟ

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

  13.   นอร์แบร์โต กอนซาเลซ dijo

    ฉันไม่เข้าใจ ขอโทษ ถ้าค่าดีฟอลต์คือ 60 สำหรับ swap ที่จะเปิดใช้งานโดยที่ 40 หรือน้อยกว่านั้น เมื่อตั้งค่าพารามิเตอร์เป็น 10 มันจะเปิดใช้งานด้วย 90 ของ ram ว่างใช่หรือไม่ โดยชะลอการแลกเปลี่ยนข้อมูล