在 本系列的第 1 部分,我介绍了 PlayStation 3 (PS3)Linux 和它作为开发平台的优势和不足。本文是第二部分,介绍一些对运行 Linux 的 PS3 系统的性能会有显著影响的因素。
这里的建议并不适合所有人。如果您做的是图形处理,那么在运行系统的时候就不能没有 X。另一方面,如果你不需要图形处理,那么没有什么能比它更节省系统内存了。
如 果以前使用的都是桌面系统,从来没有装入过交换(swap)驱动,那么本文对内存的重视看起来可能有些奇怪。但是实际上,PS3 本身并没有足够的内存,因此无法顺畅地运行现代的桌面 Linux 系统。在默认的 Fedora 7 安装中,系统在内存交换上花了许多时间(是您的时间)。内存交换对于任何系统都有很大的影响。对于使用 2.5 英寸硬盘的系统,对硬盘的访问通过 hypervisor 进行,它的主内存速度要比多数桌面系统的内存快得多,正因如此,与传统桌面系统的对比才更显得突出。
另 一项提示:在我的测试系统上,在原始安装的 2.6.21 内核下的重新启动不稳定。2.6.23 内核修正了这问题,可以使用 PS3 增件 CD 中的版本,或者使用来自标准 Fedora 升级的版本。一般来说,来自 PS3 增件 CD 的内核可能是最佳选择。
降低内存消耗
这 个主题的重要性恒久不变。对于多数桌面 Linux 用户来说,需要自己动手来减少内存的消耗,这已经是很久以前的事情了。而且,因为进程的增长会占满可用空间,所以即使只有 64 MB 主内存的服务器也被当成功能强大的服务器,实际上只是上面没有运行太多软件,所以不需要许多内存开销。虽然 PS3 系统不是个省内存的系统,但 Fedora 7 也不是为小内存系统设计的,虽然它很迷人。
为了减少内存消耗,先要找出内存的消耗大户。方法之一是使用 top
命令,它会实时地显示系统上的进程。默认情况下, top
按 CPU 使用情况排序显示进程,这对另外一种性能调优有用,但对跟踪内存大户来说并不是最佳途径。请注意 top
提供了内存使用情况汇总。例如,在运行 X 但关闭了一些服务的的 PS3 上,我得到这个结果:
清单 1. 我真的用了这么多内存么?
|
还是使用 top
(就是在 shell 中运行 top
命令),然后输入 O(这是个大写的 O,意思是 “按……排序”),然后输入 q,然后按 回车键。在这种情况下,q 表示 “驻留大小”,会显示进程实际使用的内存数量。另一个可以使用的选项是 “虚拟内存”(选项 o)。
现在应该看到一个进程列表,按照物理内存的实际使用情况排序。下面是部分列表,同样也来自测试机。
清单 2. 我猜我确实是用了这么多内存
|
排 前十位左右的内存大户都是与 X 相关的。这就是为什么如果真的想释放内存,要做的第一件事可能就是关闭 X。由于注意到许多应用程序是特定于 GNOME 的,所以您可能想试试 KDE,但是我想恐怕不会有效果。KDE 在 PS3 上的内存开支与 GNOME 不相上下。
实际上,如果绝对需要 X,那么最好是不使用 X 登录窗口提供的 X 会话环境,改用控制台登录,然后用小一些的窗口管理器和少一些的附加程序来启动 X。但是如何做到这点呢?首先是退出 top
,回到提示符—只要按 q 即可。
利用运行级(runlevel)
运行级是许多 Linux 用户都没有机会了解的一项特性。它们实际上继承自 System V UNIX®,当然也有一些区别。运行级 是定义好的一套并行运行的系统服务。由于历史原因,常用的桌面 Linu 环境带有生成 Gnome 或 KDE 的图形登录应用程序,这种环境称为运行级 5。传统的没有 X 的独立工作站通常在运行级 2 下运行。在理论上,可以使用 /sbin 目录下的 init
命令直接修改系统的运行级。例如,(以 root 身份)运行 /sbin/init 2
,就是告诉系统转移到运行级 2(通常这是通过中断运行级 2 不使用的服务,然后启动运行级 2 上使用的服务来完成的)。
默认的运行级由 /etc/inittab 文件中的一行设置,这一行看起来像下面这样: