在 PlayStation 3 上进行 Linux 开发,第 2 部分: 内存操作
http://tech.ddvip.com 2008年06月11日 社区交流
内容摘要:索尼的 PlayStation 3(PS3)能运行 Linux®,但是要运行良好,还需要做些调整。本篇文章是 本系列 的第二篇文章,在这篇文章中 Peter Seebach 研究了大量耗用内存的地方,以及如何找回内存。
编辑运行级
糟糕的是,没有一个特定的运行级是 “没有 yum-updatesd 的运行级 3”。这意味着现在需要开始手工删除服务。有两种方法可以手工删除服务。每个运行级都由 /etc/rc.d 中名为 rcN.d 的目录定义;例如,运行级 3 由 /etc/rc.d/rc3.d 中的文件定义(在 Fedora 7 系统上,在 /etc 中还有到这些目录的符号链接,但是使用完整路径是个好习惯)。
这类目录中,每个目录都包含许多文件,文件名有些神秘,例如 “K74nscd” 或 “S88nasd”。命名规范很简单:用 K 开始 的名称是进入该运行级时要停止的服务(假设从高运行级进入,在高运行级中可能正在使用它们),用 S 开始的名称是进入该运行级时要运行的服务。两位数字用来对服务排序,S13rpcbind 在 S14nfslock 之前启动,它们都在 S25netfs 之前依次启动。简单而且有效。
实际上,这些通常并不是文件,而是到 /etc/rc.d/init.d 中存储的脚本的符号链接。通常只有一个脚本负责启动或停止指定服务,然后做出相应的链接。当 init 修改运行级时,分别用 “start” 或 “stop” 参数调用脚本。
如果觉得这些操作太复杂,有些眼花缭乱,那么只要从运行级目录中删除不需要的 S 或 K 链接即可。类似的,也可以添加新的链接。另一个选项是使用 chkconfig 工具程序;这是个非常灵活和强大的工具,能够维护这些符号链接。提示:如果删除了重要的内容,可能必须使用恢复 CD才能再次干净地引导系统。在删除之前,请确定清楚这些东西是什么,有哪些内容依赖它们。
例如,如果想从运行级 2 删除 yum-updatesd 程序,只要删除链接 /etc/rc.d/rc2.d/S97yum-updatesd 即可。要用 chkconfig 从运行级 2 删除它,应该使用的命令是 /sbin/chkconfig yum-updatesd off。
跟踪更多空间
使用 chkconfig 和 top 这两个命令,可以跟踪很多大内存用户,了解它们提供了什么,如果不需要的话就可以删除它们。但是 Python 进程是怎么回事?没有 Python 服务啊!ps 命令揭示了更多内幕:
清单 5. 跟踪 Python
$ ps ax | grep python
1825 ? S 0:00 python ./hpssd.py
对启动脚本进行 grep 处理,能够看出 python 是 hplip 的一部分,hplib 提供了 “HP Linux 图形和打印” 服务。对于有些 HP 打印机和扫描仪来说这可能有用,但在其他地方可能并不需要。所以,如果还没有关闭这个服务,现在请关闭它。
在相当典型的专用开发系统上,最终合计使用的内存是 49,896KB,而开始时则为 213,692KB。可用内存也从 5,500KB 上升到 169,296KB — 对于运行编译器的空间是一个显著的改善。这个改善带来的效果取决于您的工作负载;许多后台守护程序,一旦被交换出内存,就会一直保持换出状态,使得系统的响应性提高。但是,时间一久,编译时间上的微小差异也会累积成明显的差异。
接下来如何?
可以看到,如果愿意牺牲一些不必要或者不使用的特性,那么能够回收大量系统内存,留出足够的内存来运行编译器和开始开发代码。但是,许多用户可能发现完全不使用 X 的代价太大。本系列的下一篇文章将介绍如何获得一个可以使用的 X 环境,执行一些简单的图形工作,同时又不损失执行编译器的能力。
来源:ibm 作者:Peter Seebach 责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……