ฉันจะปรับแต่งเดสก์ท็อป Linux ให้ตอบสนองได้อย่างไร


30

ฉันมีประสบการณ์ที่ Linux ทำงานได้ดีจนกว่าหน่วยความจำกายภาพจะหมดลง ทันทีที่ใช้พื้นที่สว็อปประสิทธิภาพการทำงานจะลดลงอย่างรุนแรงและ GUI ไม่ตอบสนอง

ปัญหานี้ไม่ได้ จำกัด เฉพาะ distro หรือเดสก์ท็อปที่เฉพาะเจาะจงเพราะฉันได้ลองแล้วสองสามครั้ง (และปัญหายังคงอยู่)

ฉันจะทำอะไรเกี่ยวกับเรื่องนี้?


นี่เป็นปัญหาที่ทราบกันดีกับเคอร์เนล linux ... ฉันเชื่อว่าฉันอ่านว่าเมื่อเร็ว ๆ นี้โปรแกรมแก้ไขได้รับการแก้ไขแล้ว กำลังมองหาการอ้างอิงถึงที่ ...
xenoterracide

1
บทความนี้และบทความนี้ใน phoronix คือสิ่งที่ฉันคิด ... ฉันคิดว่า
xenoterracide

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

คุณมี RAM เท่าใด คุณเรียกใช้โปรแกรมใดที่หิวมาก VM ของ? JVM?
tshepang

ฉันมี RAM 8GB และผู้ร้ายเป็นแอปทั่วไป (เว็บเบราว์เซอร์เช่น Firefox และ Chrome ไคลเอนต์อีเมลเช่น
ธันเดอร์เบิ

คำตอบ:


15

ฉันขอแนะนำให้อ่านSwapFAQโดยเฉพาะอย่างยิ่งพารามิเตอร์swapiness


3
+1, swap เป็นเครื่องมือช่วยวงดนตรีที่เราหวังว่าจะไม่ใช้ ...
Avery Payne

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

1
หลังจากการทดสอบเพิ่มเติมฉันไม่แนะนำให้ใช้การแลกเปลี่ยนอย่างใดอย่างหนึ่ง 100 หรือ 0 ทั้งสองได้สร้างสถานการณ์ที่เดสก์ท็อปกลายเป็นความนิยมในการแลกเปลี่ยน
txwikinger

11

พอยน์เตอร์บางส่วน:

  1. อย่าเรียกใช้โปรแกรม GUI จำนวนมากพร้อมกัน
  2. ตรวจสอบให้แน่ใจว่าโปรแกรมใด ๆ ที่ทำงานในพื้นหลังที่คุณไม่ต้องการเช่น Apache หยุดทำงาน
  3. ใช้ distro สำหรับสถานการณ์ที่มีหน่วยความจำต่ำ (เช่นสำหรับเน็ตบุ๊ก)
  4. ซื้อหน่วยความจำเพิ่ม
  5. ซื้อ HD (หรือ SSD) ที่เร็วขึ้นสำหรับพาร์ติชัน swap ของคุณ :)


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

4

ซื้อหน่วยความจำเพิ่มเติมหรือไม่ :)

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


3
ฉันมี RAM สูงสุดแล้ว ฉันต้องการทราบการปรับแต่งที่ทำให้การแลกเปลี่ยนมีประสิทธิภาพมากกว่าที่เป็นอยู่
txwikinger

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

3
@cjac: มักจะไม่เป็นเช่นนั้น คุณสามารถกำหนดค่าเคอร์เนลให้ทำเช่นนี้ได้ แต่โดยค่าเริ่มต้นมันจะทับ (ให้หน่วยความจำแอปที่ระบบของคุณไม่มี) ทันทีที่แอปพลิเคชันสัมผัสกับหน่วยความจำและเคอร์เนลไม่สามารถหาตัวฆาตกรนอกหน่วยความจำได้อีกต่อไปจะยุติกระบวนการอย่างน้อยหนึ่งกระบวนการ
Kristof Provost

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

1
@bahamat คุณกำลังระบุสิ่งที่ชัดเจน แต่ก็ไม่ใช่ปัญหา ปัญหาคือการสลับเปลี่ยนนั้นทำไม่ได้ผลมากดังนั้นจึงสร้างบางสิ่งในทิศทางของปัญหาของปราชญ์
txwikinger

2

ลองเปลี่ยนค่าของตัวแปรเคอร์เนล 'vm.swappiness' และ 'vm.page-cluster' เป็นค่าที่เหมาะสมกว่า

  1. เริ่มโปรแกรมจำลองเทอร์มินัล
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. Reboot

ตรวจสอบว่ามีการใช้ค่าใหม่กับ:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster

1

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

  • 1 GB บนเน็ตบุ๊กเพียงพอสำหรับการท่องเว็บฟังเพลงและอื่น ๆ ที่มีน้ำหนักเบา
  • 4 GB บนเดสก์ท็อปของฉันเพียงพอสำหรับทุกสิ่งที่กล่าวข้างต้นรวมถึงการพัฒนา (แม้แต่ใน Eclipse) และการแก้ไขรูปภาพขั้นพื้นฐาน

หากคุณทำสิ่งที่ต้องใช้หน่วยความจำมาก (Gimp ด้วยภาพขนาดใหญ่การสร้างแบบจำลอง 3 มิติ, CAD) กว่าที่คุณควรซื้อ RAM


ใช่. ฉันค่อยๆมาถึงข้อสรุปเดียวกัน ฉันดูเหมือนว่าวิธี Linux kernel swaps นั้นไม่ได้มีประสิทธิภาพมากสำหรับเดสก์ท็อป (บนเซิร์ฟเวอร์ทั้งหมดนี้ทำงานได้ดี) ดังนั้นบางทีคำแนะนำควรปิดการใช้งานพื้นที่สวอปทั้งหมดบนเดสก์ท็อป Btw ฉันใช้ 8GB RAM :)
txwikinger

1
@txwikinger: ฉันขอถามได้ไหมว่าทำไมมันถึงใช้ได้บนเซิร์ฟเวอร์?
phunehehe

1

คุณสามารถลองcompcacheถ้าคุณสามารถหาวิธีการตั้งค่าใน distro ของคุณ ตัวอย่างเช่นบน Ubuntu คุณสามารถเปิดใช้งานได้โดยแก้ไข/etc/initramfs-tools/initramfs.confและแก้ไขบรรทัด "COMPCACHE_SIZE"

ฉันไม่คิดว่าการสลับ on-disk ของฉันถูกแตะหนึ่งครั้งตั้งแต่ฉันเปิดใช้งาน compcache นี่คือสถิติการสลับปัจจุบันของฉัน:

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

ขอให้สังเกตว่ามีการใช้อุปกรณ์ compcache (ramzswap0) และอุปกรณ์บนดิสก์ (sda5) ไม่ใช่


0

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


สิ่งนั้นปรับแต่งระบบ Linux อย่างไร? การเปลี่ยนแปลงหรือการปรับปรุงฮาร์ดแวร์ไม่ใช่ปัญหาที่นี่
txwikinger

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

1
"ระบบ Linux" ประกอบด้วยฮาร์ดแวร์และซอฟต์แวร์ การเพิ่มหน่วยความจำคือ "ปรับแต่ง" ระบบ
cjac

Linux เป็นซอฟต์แวร์ที่ทำงานบนฮาร์ดแวร์ ฮาร์ดแวร์ไม่ได้รวมอยู่ใน Linux: p
txwikinger

1
ฉันคิดว่า ram มากกว่านั้นจะเหมาะสมกว่าเร็วกว่า ... RAM ความเร็วนั้นถูก จำกัด โดย Mobo เช่นกัน ...
xenoterracide

0

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

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

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png


1
ระบบส่วนใหญ่มอนิเตอร์เพียงลากระบบที่ช้าลงไปอีกนั่นคือแมวของSchrödinger โดยไม่ต้องเพิ่มหน่วยความจำเขาต้องแก้ไขการรั่วไหลของหน่วยความจำหรือตัดแต่งโปรแกรมที่ไม่จำเป็นที่กำลังทำงานอยู่
jjclarkson

0

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

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

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


การใช้งานเดสก์ท็อปจำนวนมากไม่ได้ให้ตัวเลือกนี้เนื่องจากเป็น lapbooks หรือเน็ตบุ๊กที่ไม่อนุญาตให้ใช้ไดรฟ์ที่สอง
txwikinger

@txwikinger เห็นได้ชัดจริง แต่ผมถือว่าชื่อของคำถามที่อ่าน "เดสก์ทอป" มิฉะนั้นผมจะไม่ได้ปัญหานี้หากแล็ปท็อปที่ถูกกล่าวถึงโดยเฉพาะ :-)
กลับ

ดี .. ฉันหมายถึงเดสก์ท็อปเพื่อแยกความแตกต่างจากเซิร์ฟเวอร์ที่ฉันเชื่อว่าการแลกเปลี่ยนทำงานได้ดีพอสมควร :)
txwikinger

0

ติดตั้งระบบ Linux ตัวที่สองบนเครือข่ายของคุณด้วย RAM ที่ดี NFS ติดตั้งระบบหลักของคุณและวางไฟล์ swap ไว้บนนั้น


1
ด้วยกิกะบิตอีเทอร์เน็ตนี่จะช้ากว่า SSD ระดับกลางมากและฉันไม่แน่ใจว่าคุณจะสามารถเข้าถึงความเร็วของฮาร์ดดิสก์ 7200 รอบต่อนาทีได้หรือไม่ บางทีด้วย Firewire คุณสามารถเข้าถึงความเร็วของการแลกเปลี่ยนในพื้นที่ได้ แต่จะมีประสิทธิภาพมากกว่าในการเพิ่มแรม
Gilles 'หยุดความชั่วร้าย'

0

วิธีหนึ่งคือการใช้เคอร์เนลที่ดีที่สุด


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

0

สำหรับประสบการณ์หลายปีฉันสามารถบอกคุณได้ว่ามีไม่มากที่จะปรับแต่ง

แต่สิ่งที่ฉันทำเมื่อไม่นานมานี้ช่วยได้มาก

1

ฉันย้ายจาก Ubuntu ไปเป็น Arch Linux จาก Unity / Gnome ไปยังเดสก์ท็อป xfce

Ubuntu นั้นช้ามากจากทุกที่ boot / graphics .. ช้า

2

ฉันซื้อ Intel SSD (80g) และปลูกระบบรูทของฉันลงบนมัน

arch ของฉัน Linux + XFCE4 + docky + conky บูตในเวลา 10 วินาที (ล็อกอินอัตโนมัติด้วย lxdm) แอปพลิเคชันทั้งหมดที่ติดตั้งบน SSD เช่น Matlab เริ่มเร็วขึ้นมาก

เงินคุ้มค่า

3

ทำ / tmp ของคุณที่อื่นฉันใช้ ramdisk ในขนาดที่ จำกัด เพื่อป้องกันระบบไฟล์รูทได้รับสัญญาณรบกวน

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