简而言之,几天前 一位内核开发人员上传了一个补丁 (200行代码)极大地提高了系统性能(近10倍),尤其是在执行繁重的任务(例如编译内核)期间处理多任务时。 Linus祝贺这位开发人员所做的巨大贡献。 但是,作为红帽开发人员, Lennar Poettering不同意直接从内核实现此增强功能。 最好让他在用户空间中进行更改 (〜/ .bashrc)。 莱纳斯(Linus)生气并谴责了这位开发人员,并告诉他结果表明一切。 Lennar坐下来设计,而不是苛刻地回答 一个替代方案(不需要修补内核)并且仅占用4行。 最终,他们关闭了Linus ... |
注意:此方法需要支持Linux内核(cgroups)中的任务组,即,只有内核高于2.6.36的用户才能应用它。
如何在Fedora中应用补丁
1.- 编辑〜/ .bashrc文件。
gedit〜/ .bashrc
2.- 将以下代码粘贴到文件末尾:
如果[“ $ PS1”]; 然后
mkdir -m 0700 / sys / fs / cgroup / cpu /用户/ $$
回显$$> / sys / fs / cgroup / cpu /用户/ $$ /任务
fi
3.- 运行以下命令:
挂载-t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu /用户
如何在Ubuntu中应用补丁
在Ubuntu中,事情有点复杂...
1.- 编辑档案 本地 使用此命令:
须藤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.- 保存文件并赋予其执行权限:
须藤chmod + x /etc/rc.local
3.- 编辑档案 在〜/ .bashrc:
gedit〜/ .bashrc
4.- 将以下代码粘贴到文件末尾:
如果[“ $ PS1”];
然后mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ /任务
回声“ 1”> / dev / cgroup / cpu /用户/ $$ / notify_on_release
fi
5.- 修改cgroup_clean文件:
须藤gedit / usr / local / sbin / cgroup_clean
6.- 将以下代码粘贴到文件末尾:
#!/ bin / sh的
如果[“ $ *”!=“ /用户”]; 然后
rmdir / dev / cgroup / cpu / $ *
fi
7.- 保存文件并赋予其执行权限:
须藤chmod + x / usr / local / sbin / cgroup_clean
8.- 重新启动系统。
注意:如果看到/ dev / cgroup /文件夹,则将注意到多任务管理方面的显着改进。
我找到了Arch的说明,它们在这里: http://pastebin.com/raw.php?i=sHRYRuAN
就我而言,我已应用了补丁,总体上我没有注意到很多改进,但是如果您在滚动网页时发现很大的变化,那么它们第一次真的很流畅! =)
大! 非常感谢您的分享!
我是否告诉过您,我们正在寻找使用Arch博客的人? 如果您有兴趣,请写信给我们 使用moslinux@gmail.com
一个大大的拥抱! 保罗
感谢您的邀请,然后我们将通过邮件继续,然后😉
偶然地,将没有关于Archlinux的说明,对吗? 🙂
我没有找到他们。 但是有些事情告诉我,它肯定更像Fedora。 另一方面,应该牢记的是,当每个人都在按自己的意愿组装Arch时,也许会影响要遵循的程序...
在这里,我找到了如何在Archlinux中应用它们,它与fedora非常相似: http://pastebin.com/raw.php?i=sHRYRuAN
bash:/ dev / cgroup / cpu / user / $ / tasks:文件或目录不存在
我遵循了这些说明,如果有事情要做,打开终端AMD64 x时它会一直告诉我这个错误。
我已经找到了,请巴勃罗纠正 http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
在ubuntu中做什么-而不是您所做的-是:
须藤gedit / usr / local / sbin / cgroup_clean
并把这个:
#!/ bin / sh的
如果[“ $ *”!=“ /用户”]; 然后
rmdir / dev / cgroup / cpu / $ *
fi
准备! 更正! 谢谢!
是真的! 谢谢你提醒我!
我只是在帖子开头添加了说明。
一个拥抱! 保罗
具体来说,我将为用户带来哪些好处,以及在系统中将看到哪些性能改进。
一切都快得多。 但是,当您正在执行繁重的任务并希望同时执行其他任务时,差异实际上是“可见的”。 例如,您正在运行多个程序的安装,或者正在编译内核或编辑沉重的视频,同时又想浏览互联网或观看电影,等等。
如果您了解如何在Arch中实施该补丁,请告诉我,我将尝试运行在Fedora中可用的补丁。
拥抱! 保罗
我想这取决于您对计算机的使用。 如果您几乎不使用Internet和某些简易文本编辑器,那么您将不会“感觉”到区别。 另一方面,如果您像我一样在浏览Internet或观看电影时做繁重的工作(例如转换视频,编译内核等),则可以分辨出两者之间的区别。
在完成所有步骤之后,当我打开终端时,总是会得到以下信息:
mkdir:无法创建目录“ / dev / cgroup / cpu / user / 1844”:文件或目录不存在
bash:/ dev / cgroup / cpu / user / 1844 /任务:文件或目录不存在
bash:/ dev / cgroup / cpu / user / 1844 / notify_on_release:文件或目录不存在
domingopv @ pc1:〜$
即使终端机,一切都正常,您做错了吗?
嗯...我真的不知道这可能是什么。 但是,我的印象是,您可能无法很好地完成某些步骤,尤其是从5开始。 尝试重复它们,或确保您设置正确。 我现在能想到的就是这些。
一个大大的拥抱! 保罗
重新安装特立独行并重新安装补丁,现在我得到以下信息。
mkdir:无法创建目录“ / dev / cgroup / cpu / user / 1678”:文件或目录不存在
bash:/ dev / cgroup / cpu / user / 1678 /任务:文件或目录不存在
bash:/ dev / cgroup / cpu / user / 1678 / notify_on_release:文件或目录不存在
domingopv @ pc1:〜$
Uyy ..我真的不知道这可能是什么。 它对我来说很完美。
某些情况告诉我,cgroup清理效果不佳。 因此,我坚持要求您从步骤5开始。
干杯! 保罗
我的母亲,给人留下深刻的印象,我可以在无源nvidia 1080上看到8400p闪存视频,我的意思是,不好,很糟糕,cpus都可以正常工作,非常棒的ffff,可以改善,更好,我有Ubuntu 10.04😀视频对我很好哈哈哈😀
什么是rc.local? 有几个,是哪个? 问候。
我只是编写了第4点中列出的命令。您不必将其复制到文件中,而是运行这些命令。
干杯! 保罗
解释不充分。
您要做的是使用以下命令编辑rc.local文件:
须藤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文件。” 缺少要添加的是执行此类操作的命令(有些人可能不知道)。 我现在添加它。
感谢您的通知! 问候! 保罗
PCLinuxO中的程序是什么?
事实是我不知道……
如果您发现了问题,别忘了与其他人共享数据!
非常感谢您!
干杯! 保罗
在我看来还是您没有提供任何参考资料? 你能告诉我消息来源吗?
谢谢
没有单一来源。 我一直在寻找如何从不同来源和个人经验中去做。 概括地说,我可以告诉您消息来源是复制该新闻的数百万博客。 搜索“修补200个Linux内核行”,您将看到我在说什么。 我记不清了,但是Ubuntu部分可能是从WebUpd8获得的。 Fedora并非如此。
我是不久前使用Ubuntu 64位的用户,当我看到此提示时,我开始研究,根据这篇文章,我拥有的当前内核是2.6.32-27,此补丁只能应用于具有以下功能的内核:大于或等于2.6.36我的问题是,如果此更改仅适用于32位发行版,或者在我当前的发行版中,内核可以更新为2.6.36?
感谢您在网络上提供的所有信息,非常棒的材料。
此更改适用于32位和64位。
干杯! 保罗
一个问题,这不会和以后的更新搞混吗?
如果进展不顺利,可能发生的最坏情况是什么?
(您看到,然后从Ubuntu 10.04升级到10.10会使所有程序崩溃)
需要澄清的第一件事(以避免不负责任地使用该方法)是它要求支持Linux内核(cgroup)中的任务组,即,只有内核大于2.6.36的用户才能应用此方法。改善。