เพื่อให้เรื่องยาวสั้นไม่กี่วันที่ผ่านมา ผู้พัฒนาเคอร์เนลรายหนึ่งได้อัปโหลดแพตช์ (โค้ด 200 บรรทัด) ที่อนุญาตให้ปรับปรุงประสิทธิภาพของระบบได้มาก (เกือบ 10 เท่า) โดยเฉพาะอย่างยิ่งเมื่อต้องจัดการกับการทำงานหลายอย่างพร้อมกันระหว่างการทำงานหนัก (เช่นการคอมไพล์เคอร์เนล) Linus แสดงความยินดีกับผู้พัฒนารายนี้สำหรับผลงานที่ยอดเยี่ยม อย่างไรก็ตามนักพัฒนา Red Hat Lennar Poettering ไม่เห็นด้วยที่จะใช้การเพิ่มประสิทธิภาพนี้โดยตรงจากเคอร์เนล เป็นการดีกว่าสำหรับเขาที่จะทำการเปลี่ยนแปลงในพื้นที่ผู้ใช้ (~ / .bashrc) Linus โกรธและตำหนินักพัฒนารายนี้โดยบอกเขาว่าผลลัพธ์นั้นพูดเพื่อตัวเอง เลนนาร์แทนที่จะตอบด้วยถ้อยคำที่รุนแรงกลับนั่งลงและวางแผน ทางเลือกอื่น (ที่ไม่จำเป็นต้องแก้ไขเคอร์เนล) และใช้เพียง 4 บรรทัด. ในที่สุดพวกเขาก็ปิด Linus ... |
หมายเหตุ: วิธีนี้ต้องการการสนับสนุนสำหรับกลุ่มของงานใน Linux Kernel (cgroups) นั่นคือเฉพาะผู้ใช้ที่มี Kernel สูงกว่า 2.6.36 เท่านั้นที่สามารถใช้งานได้
วิธีใช้โปรแกรมแก้ไขใน Fedora
1.- แก้ไขไฟล์ ~ / .bashrc
gedit ~ / .bashrc
2.- วางโค้ดต่อไปนี้ที่ท้ายไฟล์:
ถ้า ["$ PS1"]; แล้ว
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / งาน
fi
3.- เรียกใช้คำสั่งต่อไปนี้:
เมานต์ -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / ผู้ใช้
วิธีใช้โปรแกรมแก้ไขใน Ubuntu
ใน Ubuntu สิ่งต่าง ๆ ซับซ้อนกว่าเล็กน้อย ...
1.- แก้ไขไฟล์ rc.local ด้วยคำสั่งนี้:
sudo gedit /etc/rc.local
และวางก่อนที่จะระบุว่า "exit 0" ดังต่อไปนี้:
mkdir -p / dev / cgroup / cpu
เมานต์ -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / ผู้ใช้
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
2.- บันทึกไฟล์และให้สิทธิ์ดำเนินการ:
sudo chmod + x /etc/rc.local
3.- แก้ไขไฟล์ ~ / .bashrc:
gedit ~ / .bashrc
4.- วางโค้ดต่อไปนี้ที่ท้ายไฟล์:
ถ้า ["$ PS1"];
จากนั้น mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ / งาน
echo "1"> / dev / cgroup / cpu / user / $$ / alert_on_release
fi
5.- แก้ไขไฟล์ cgroup_clean:
sudo gedit / usr / local / sbin / cgroup_clean
6.- วางโค้ดต่อไปนี้ที่ท้ายไฟล์:
# / bin / sh
ถ้า ["$ *"! = "/ user"]; แล้ว
rmdir / dev / cgroup / cpu / $ *
fi
7.- บันทึกไฟล์และให้สิทธิ์ดำเนินการ:
sudo chmod + x / usr / local / sbin / cgroup_clean
8.- รีบูตระบบ
หมายเหตุ: หากคุณเห็นโฟลเดอร์ / dev / cgroup / คุณจะสังเกตเห็นการปรับปรุงการจัดการมัลติทาสก์อย่างมาก
ฉันพบคำแนะนำสำหรับ Arch อยู่ที่นี่: http://pastebin.com/raw.php?i=sHRYRuAN
ในส่วนของฉันฉันใช้แพตช์การปรับปรุงโดยทั่วไปฉันไม่สังเกตเห็น แต่ถ้าคุณสังเกตเห็นการเปลี่ยนแปลงครั้งใหญ่เมื่อเลื่อนหน้าเว็บพวกเขาจะลื่นไหลในครั้งแรก !!! =)
เยี่ยมมาก! ขอบคุณมากสำหรับการแบ่งปัน!
ฉันบอกคุณหรือไม่ว่าเรากำลังมองหาผู้ที่ใช้ Arch เพื่อบล็อก? หากคุณสนใจเขียนถึงเรา มา uselinux@gmail.com กันเถอะ
กอดใหญ่! พอล.
ขอบคุณสำหรับคำเชิญจากนั้นเราจะดำเนินการต่อทางไปรษณีย์😉
โดยบังเอิญจะไม่มีคำแนะนำสำหรับ Archlinux ใช่ไหม? 🙂
ฉันไม่พบพวกเขา แต่มีบางอย่างบอกฉันว่ามันเหมือน Fedora มากกว่า ในทางกลับกันควรระลึกไว้เสมอว่าเมื่อทุกคนประกอบ Arch ตามที่ต้องการบางทีอาจส่งผลต่อขั้นตอนที่จะปฏิบัติตาม ...
ที่นี่ฉันพบวิธีการใช้งานใน Archlinux ซึ่งค่อนข้างคล้ายกับ fedora: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / งาน: ไม่มีไฟล์หรือไดเร็กทอรี
ฉันทำตามคำแนะนำเหล่านี้และมันยังคงบอกข้อผิดพลาดนี้เมื่อเปิดเทอร์มินัล AMD64 x หากมีสิ่งที่ต้องทำ
ฉันพบแล้วโปรดพาโบลแก้ไข http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
สิ่งที่ต้องทำใน Ubuntu - แทนที่จะเป็นสิ่งที่คุณใส่ - คือ:
sudo gedit / usr / local / sbin / cgroup_clean
และใส่สิ่งนี้:
# / bin / sh
ถ้า ["$ *"! = "/ user"]; แล้ว
rmdir / dev / cgroup / cpu / $ *
fi
พร้อม! แก้ไขแล้ว! ขอขอบคุณ!
มันคือเรื่องจริง! ขอบคุณที่เตือนฉัน!
ฉันเพิ่งเพิ่มคำชี้แจงนั้นในตอนต้นของโพสต์
กอด! พอล.
โดยเฉพาะอย่างยิ่งฉันจะได้รับประโยชน์อะไรบ้างในฐานะผู้ใช้และระบบของฉันจะเห็นการปรับปรุงประสิทธิภาพอะไร
ทุกอย่างเร็วขึ้นมาก อย่างไรก็ตามความแตกต่างนั้น "เห็นได้" จริงๆเมื่อคุณทำงานหนักและต้องการทำงานอื่นไปพร้อมกัน ตัวอย่างเช่นคุณกำลังเรียกใช้การติดตั้งโปรแกรมต่างๆหรือคุณกำลังรวบรวมเคอร์เนลหรือแก้ไขวิดีโอจำนวนมากและในเวลาเดียวกันคุณต้องการท่องอินเทอร์เน็ตหรือดูภาพยนตร์เป็นต้น
โปรดแจ้งให้เราทราบหากคุณค้นพบวิธีใช้แพตช์ใน Arch ฉันจะลองรันโปรแกรมที่ใช้งานได้ใน Fedora
กอด! พอล.
ฉันเดาว่าขึ้นอยู่กับการใช้งานที่คุณให้กับคอมพิวเตอร์ของคุณ หากคุณแทบไม่ได้ใช้อินเทอร์เน็ตและโปรแกรมแก้ไขข้อความแบบเบาบาง ... คุณจะไม่ "รู้สึก" ถึงความแตกต่าง ในทางกลับกันหากคุณเป็นเหมือนฉันและทำงานหนัก (เช่นการแปลงวิดีโอการรวบรวมเคอร์เนล ฯลฯ ) ในขณะที่ท่องอินเทอร์เน็ตหรือดูภาพยนตร์คุณสามารถบอกความแตกต่างได้
หลังจากทำตามขั้นตอนทั้งหมดเมื่อฉันเปิดเทอร์มินัลฉันจะได้รับสิ่งต่อไปนี้เสมอ:
mkdir: ไม่สามารถสร้างไดเร็กทอรี "/ dev / cgroup / cpu / user / 1844": ไม่มีไฟล์หรือไดเร็กทอรี
bash: / dev / cgroup / cpu / user / 1844 / task: ไม่มีไฟล์หรือไดเร็กทอรี
bash: / dev / cgroup / cpu / user / 1844 / inform_on_release: ไม่มีไฟล์หรือไดเร็กทอรี
domingopv @ pc1: ~ $
ทุกอย่างทำงานได้ดีแม้กระทั่งเครื่องปลายทางคุณทำอะไรผิดหรือเปล่า?
อืม ... ฉันไม่รู้จริงๆว่ามันคืออะไร อย่างไรก็ตามฉันรู้สึกว่ามีโอกาสมากที่คุณจะทำบางขั้นตอนได้ไม่ดีตั้งแต่ 5 เป็นต้นไปโดยเฉพาะ ลองทำซ้ำหรือตรวจสอบให้แน่ใจว่าคุณเข้าใจถูกต้อง นั่นคือทั้งหมดที่ฉันคิดได้ในตอนนี้
กอดใหญ่! พอล.
ติดตั้ง maverick อีกครั้งและติดตั้งแพทช์ใหม่และตอนนี้ฉันได้รับสิ่งต่อไปนี้
mkdir: ไม่สามารถสร้างไดเร็กทอรี "/ dev / cgroup / cpu / user / 1678": ไม่มีไฟล์หรือไดเร็กทอรี
bash: / dev / cgroup / cpu / user / 1678 / task: ไม่มีไฟล์หรือไดเร็กทอรี
bash: / dev / cgroup / cpu / user / 1678 / inform_on_release: ไม่มีไฟล์หรือไดเร็กทอรี
domingopv @ pc1: ~ $
อุ้ย.. ไม่รู้จะเป็นอะไรได้จริงๆ มันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน
มีบางอย่างบอกฉันว่าการล้างข้อมูล cgroup ทำงานได้ไม่ดี นั่นคือเหตุผลที่ฉันยืนยันว่าคุณเห็นตั้งแต่ขั้นตอนที่ 5 เป็นต้นไป
ไชโย! พอล.
แม่ของฉันน่าประทับใจฉันสามารถดูวิดีโอแฟลช 1080p บน nvidia 8400 แบบพาสซีฟฉันหมายถึงไม่ดีไม่ดีสมบูรณ์แบบ cpus ทำงานได้ดี uffff ที่ยอดเยี่ยมที่ปรับปรุงมันดีกว่ามากฉันมี Ubuntu 10.04 😀ดี วิดีโอดีสำหรับฉันฮ่า ๆ ๆ 😀
rc.local อะไร มีหลายอันคืออะไร? ความนับถือ.
ฉันเพิ่งเขียนคำสั่งที่ระบุไว้ในจุดที่ 4 คุณไม่จำเป็นต้องคัดลอกลงในไฟล์ แต่เรียกใช้คำสั่งเหล่านั้น
ไชโย! พอล.
อธิบายได้ไม่ดี
สิ่งที่คุณต้องทำคือแก้ไขไฟล์ rc.local ด้วย:
sudo gedit /etc/rc.local
คุณต้องวางด้านใน (ก่อนทางออก 0):
mkdir -p / dev / cgroup / cpu
เมานต์ -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / ผู้ใช้
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
นั่นคือปัญหา. ขั้นตอนเหล่านั้นอธิบายได้ไม่ดี
คุณพูดถูก! เห็นได้ชัดว่า "แก้ไขไฟล์ rc.local" สิ่งที่ขาดหายไปในการเพิ่มคือคำสั่งให้ทำสิ่งนั้น (ซึ่งบางคนอาจไม่รู้) ฉันเพิ่มตอนนี้
ขอบคุณสำหรับคำบอกกล่าว! ไชโย! พอล.
ขั้นตอนใน PCLinuxOs จะเป็นอย่างไร?
ความจริงก็คือฉันไม่รู้…
หากคุณพบอย่าลืมแบ่งปันข้อมูลกับคนอื่น ๆ !
ขอบคุณมาก!
ไชโย! พอล.
ดูเหมือนว่าฉันหรือคุณไม่ได้ใส่ข้อมูลอ้างอิงจากที่ที่คุณได้มา? ช่วยบอกแหล่งที่มาหน่อยได้ไหม
กราเซีย
ไม่มีแหล่งเดียว ฉันกำลังมองหาวิธีการทำจากแหล่งต่างๆและจากประสบการณ์ส่วนตัวของฉันเอง โดยทั่วไปฉันสามารถบอกคุณได้ว่าแหล่งที่มาคือบล็อกหลายล้านบล็อกที่ทำซ้ำข่าว มองหา "patch 200 linux kernel lines" แล้วคุณจะเห็นสิ่งที่ฉันกำลังพูดถึง ฉันจำไม่ได้ว่า แต่ส่วนของ Ubuntu อาจได้รับจาก WebUpd8 ไม่ใช่เช่นนั้นสำหรับ Fedora
ฉันเป็นผู้ใช้ ubuntu 64 บิตเมื่อไม่นานมานี้และเมื่อฉันเห็นเคล็ดลับนี้ฉันเริ่มตรวจสอบและเคอร์เนลปัจจุบันที่ฉันมีคือ 2.6.32-27 ตามโพสต์แพตช์นี้สามารถใช้ได้กับเมล็ดที่ สูงกว่าหรือเท่ากับ 2.6.36 คำถามของฉันคือถ้าการเปลี่ยนแปลงนี้ใช้ได้กับ distros 32 บิตเท่านั้นหรือใน distro ปัจจุบันของฉันเคอร์เนลสามารถอัปเดตเป็น 2.6.36 ได้หรือไม่
ขอบคุณสำหรับข้อมูลทั้งหมดบนเว็บเนื้อหาที่ยอดเยี่ยม
การเปลี่ยนแปลงนี้ใช้ได้กับ 32 และ 64 บิตเหมือนกัน
ไชโย! พอล.
สำหรับคำถามและสิ่งนี้จะไม่ยุ่งกับการอัปเดตในภายหลัง?
ถ้ามันไม่เป็นไปด้วยดีอะไรจะเลวร้ายที่สุดที่อาจเกิดขึ้น?
(คุณจะเห็นว่าแค่เปลี่ยนจาก Ubuntu 10.04 เป็น 10.10 ก็ขัดข้องทุกอย่าง)
สิ่งแรกที่ควรชี้แจง (เพื่อหลีกเลี่ยงการใช้วิธีการที่ขาดความรับผิดชอบ) คือต้องมีการสนับสนุนกลุ่มงานในเคอร์เนล Linux (cgroups) นั่นคือเฉพาะผู้ใช้ที่มีเคอร์เนลสูงกว่า 2.6.36 เท่านั้นที่สามารถใช้วิธีนี้ ของการปรับปรุง