เมื่อต้นปี เราพูดถึงที่นี่ในบล็อกเกี่ยวกับยูทิลิตี้ Earlyoom ซึ่งหลังจากการพูดคุยโดยนักพัฒนา Fedora ได้รับการยอมรับให้ใช้ยูทิลิตี้นี้ใน Fedora 32 เป็นกระบวนการเบื้องหลังโดยพวกเขาตั้งใจที่จะปรับปรุงการตอบสนองของระบบต่อการขาดหน่วยความจำและหลีกเลี่ยงปัญหาการขัดข้อง
หลายสัปดาห์ต่อมาและ หลังจากแปดเดือนของการพัฒนามีการประกาศการเปิดตัว Earlyoom 1.4 เวอร์ชันใหม่.
สำหรับผู้ที่ไม่คุ้นเคยกับโครงการควรทราบ นี่คือเธรดพื้นหลังที่ตรวจสอบจำนวนหน่วยความจำที่มีอยู่เป็นระยะ (MemAvailable, SwapFree) และพยายามตอบสนองต่อสภาวะหน่วยความจำไม่เพียงพอในระยะเริ่มต้น รหัสโครงการเขียนด้วยภาษา C และแจกจ่ายภายใต้ใบอนุญาต MIT
หากจำนวนหน่วยความจำที่มีอยู่น้อยกว่า กว่าค่าที่ระบุ earlyoom จะจบลงด้วยการบังคับ (โดยส่ง SIGTERM หรือ SIGKILL) ขั้นตอนของกระบวนการที่ใช้หน่วยความจำมากที่สุด (ซึ่งมีค่าสูงสุด / proc / * / oom_score) โดยไม่มีบัฟเฟอร์ของระบบล้างสถานะระบบและรบกวนการทำงานของ swap (OOM (หน่วยความจำไม่เพียงพอ) ไดรเวอร์ในเคอร์เนลจะทำงานเมื่อหน่วยความจำสถานะต่ำถึงค่าวิกฤตแล้วและโดยทั่วไปในกรณีนี้ ชี้ว่าระบบไม่ตอบสนองต่อการกระทำของผู้ใช้อีกต่อไป)
Earlyoom รองรับการส่งการแจ้งเตือนกระบวนการบังคับ ไปยังเดสก์ท็อป (โดยการส่งการแจ้งเตือน) และยังให้ความสามารถในการกำหนดกฎที่สามารถใช้นิพจน์ทั่วไปเพื่อระบุชื่อของกระบวนการที่ต้องการการยุติ (ตัวเลือก "–prefer") หรือการหยุดที่ควรหลีกเลี่ยง (- หลีกเลี่ยงตัวเลือก)
มีอะไรใหม่ใน Earlyoom 1.4
ในเวอร์ชันใหม่นี้จะมีการเน้นการเปลี่ยนแปลงบางอย่างซึ่ง มีการกล่าวถึงว่าฉันกำลังทำความสะอาดโค้ด และเนื่องจากการโหลดแอตทริบิวต์กระบวนการล่าช้า ตรรกะของการเลือกกระบวนการที่จะเสร็จสมบูรณ์นั้นเร่งขึ้น 50%
นอกจากนั้นยัง ใช้การรีเซ็ตสิทธิ์รูทแล้ว ในไฟล์ไดรฟ์ "systemd earlyroom.service" การเปลี่ยนแปลงนี้ทำให้ไม่สามารถรับการแจ้งเตือน GUI ได้
ในการเปิดใช้งานการแจ้งเตือน GUI อีกครั้งขอเสนอให้คืนสิทธิ์รูทโดยยกเลิกการใส่เครื่องหมายในบรรทัด«DynamicUser = จริง"
แม้ว่าการปิดใช้งานรูทยังทำให้ไม่สามารถรับข้อมูลเกี่ยวกับการใช้หน่วยความจำเมื่อทำการติดตั้ง / proc โหมด hidepid = 1 หรือ hidepid = 2.
จากการเปลี่ยนแปลงอื่น ๆ ที่โดดเด่น:
- UID ของกระบวนการยุติจะแสดงในรีจิสทรีนอกเหนือจาก PID และชื่อของกระบวนการ
- เพิ่มการเน้นบันทึกการแก้ปัญหาสีเทาอ่อน
- ถ้าเป็นไปได้ระบบจะใช้การประกาศตัวแปรภายในบล็อก
- เพิ่มการกำหนดค่าแล้ว PATH_LEN เพื่อแทนที่ค่าของขนาดบัฟเฟอร์ที่ฝังอยู่ในโค้ด
- ความเป็นไปได้ในการเริ่มต้น ซีพีพีเช็ค ถ้ามี
- เพิ่มการทดสอบประสิทธิภาพ "สร้างบัลลังก์"
- ชุดทดสอบเพิ่มเติม (ทำการทดสอบ)
ในที่สุด หากคุณต้องการทราบข้อมูลเพิ่มเติม เกี่ยวกับรุ่นนี้คุณสามารถตรวจสอบรายละเอียดได้ในไฟล์ ลิงค์ต่อไปนี้
จะติดตั้ง earlyoom บน Linux ได้อย่างไร?
สำหรับผู้ที่สนใจจะทดลองใช้ยูทิลิตีนี้สามารถทำได้โดยทำตามคำแนะนำที่เราแบ่งปันด้านล่างนี้
Earlyoom ตั้งอยู่ภายในที่เก็บของการแจกแจงบางส่วน ของลินุกซ์ยอดนิยมดังนั้น ในกรณีของ Debian, Ubuntu และอนุพันธ์ใด ๆ จากสิ่งเหล่านี้การติดตั้งสามารถทำได้ด้วยคำสั่งต่อไปนี้:
sudo apt install earlyoom
เมื่อเสร็จแล้วต้องเปิดใช้บริการด้วยคำสั่ง:
sudo systemctl enable earlyoom
และเริ่มต้นด้วย:
sudo systemctl start earlyoom
ในกรณีของ Fedora และ RHEL 8 พร้อม EPELสามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้:
sudo dnf install earlyoom
และเปิดใช้บริการด้วย:
sudo systemctl enable --now earlyoom
ในที่สุด ในกรณีของ Arch Linux หรืออนุพันธ์อื่น ๆ ของสิ่งนี้การติดตั้งทำได้ด้วยคำสั่งต่อไปนี้:
sudo pacman -S earlyoom
และเปิดใช้บริการด้วย:
sudo systemctl enable --now earlyoom
สำหรับลินุกซ์อื่น ๆ ทั้งหมด พวกเขาสามารถทำการติดตั้งโดยรวบรวมรหัสยูทิลิตี้
ในการรับรหัสเราสามารถทำได้ด้วยคำสั่งต่อไปนี้:
git clone https://github.com/rfjakob/earlyoom.git
cd earlyoom
เราดำเนินการรวบรวม:
make
และเราติดตั้ง (ถ้าคุณมี Systemd):
sudo make install
หรือสำหรับผู้ที่ไม่มี Systemd:
sudo make install-initscript
และในการใช้บริการที่คุณทำกับ:
./earlyoom
รายละเอียดของชื่อเรื่อง: «ความจำเสื่อม»
ขอบคุณสำหรับการสังเกต ไชโย! 🙂
ฉันคิดว่ามีรายละเอียดเกี่ยวกับการติดตั้งใน Manjaro (มาจาก Arch) ฉันไม่พบแพ็คเกจในที่เก็บปกติ
ดังนั้นการติดตั้งควรผ่าน yaourt
yaourt earlyoom
สวัสดี!
ใน Arch จะอยู่ภายในที่เก็บชุมชนซึ่งต้องเปิดใช้งานใน pacman.conf เช่นเดียวกับที่คุณพูดถึงมันก็อยู่ใน AUR เช่นกัน
ขอบคุณสำหรับการสังเกต😀
สวัสดีฉันต้องการให้บริการนี้เริ่มต้นใน MXLinux ทุกครั้งที่เปิดคอมพิวเตอร์โดยไม่ต้องใส่คำสั่งในเทอร์มินัลฉันจะทำอย่างไร