top & free

昨天机器跑vim觉得有点卡,怀疑是机器的内存不够用。一直都使用的原装2G内存。

用top和free察看了一下机器的状况,顺便学习了一下这两个命令的参数。

top

这是我的机器现在的top状况:

从google搜索到的资料整合我自己的情况,如下:

前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

  • 10:17:55 当前时间
  • up 2:05 系统运行时间,格式为时:分
  • 2 user 当前登录用户数
  • load average: 0.20, 0.47, 0.42 系统负载,即任务队列的平均长度。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

  • Tasks: 163 total 进程总数
  • 1 running 正在运行的进程数
  • 161 sleeping 睡眠的进程数
  • 0 stopped 停止的进程数
  • 1 zombie 僵尸进程数 (不知道是什么进程)
  • Cpu(s)…. 用户空间占用CPU百分比 (剩余很多,看来我的CPU还是挺强劲的)
  • sy 内核空间占用CPU百分比
  • ni 用户进程空间内改变过优先级的进程占用CPU百分比
  • id 空闲CPU百分比
  • wa 等待输入输出的CPU时间百分比

最后两行为内存信息。内容如下:

  • Mem: 1979784k total 物理内存总量
  • 1489180k used 使用的物理内存总量
  • 490604k free 空闲内存总量
  • 69592k buffers 用作内核缓存的内存量
  • Swap: 4200992k total 交换区总量
  • 0k used 使用的交换区总量
  • 4200992k free 空闲交换区总量
  • 686068k cached 缓冲的交换区总量。

统计信息区域的下方显示了各个进程的详细信息。各列的含义。

  • PID 进程id
  • PPID 父进程id
  • RUSER Real user name
  • UID 进程所有者的用户id
  • USER 进程所有者的用户名
  • GROUP 进程所有者的组名
  • TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
  • PR 优先级
  • NI nice值。负值表示高优先级,正值表示低优先级
  • P 最后使用的CPU,仅在多CPU环境下有意义
  • %CPU 上次更新到现在的CPU时间占用百分比
  • TIME 进程使用的CPU时间总计,单位秒
  • TIME+ 进程使用的CPU时间总计,单位1/100秒
  • %MEM 进程使用的物理内存百分比
  • VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  • SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
  • RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  • CODE 可执行代码占用的物理内存大小,单位kb
  • DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
  • SHR 共享内存大小,单位kb
  • nFLT 页面错误次数
  • nDRT 最后一次写入到现在,被修改过的页面数。
  • S 进程状态。
  • D=不可中断的睡眠状态
  • R=运行
  • S=睡眠
  • T=跟踪/停止
  • Z=僵尸进程
  • COMMAND 命令名/命令行
  • WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
  • Flags 任务标志

另外,在top运行状态下按o健(小写的o,不是零),可以选择需要显示的列。大写的O健可以选择排序。

从top上看到,似乎可用的内存非常的少了。但是实际上,linux下的内存计算并不是这样的。我们看看free的结果。

free

这是我的机器当前的free结果:
[code language="powershell"]
[tang@thinktang ~]$ free
total       used      free     shared  buffers  cached
Mem:       1979784  1498156  481628      0     72068   689396
-/+ buffers/cache:   736692  1243092
Swap:      4200992       0      4200992
[/code]

第二行(mem):

  • total:总计物理内存的大小。
  • used:已使用多大。
  • free:可用有多少。
  • Shared:多个进程共享的内存总额。
  • Buffers/cached:磁盘缓存的大小。

第三行(-/+ buffers/cached):

  • used:已使用多大。
  • free:可用有多少。

第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别:

这两个的区别在于使用的角度来看,第二行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是 481628k,已用内存是1498156k,其中包括内核(OS)使用 + Application使用的 + buffers + cached.

第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存 = 系统free memory + buffers + cached.

结论

因此,我的机器这里可用的内存是:1243092=481628+72068+689396,大约是总内存的60%。2G的内存,在现阶段完全够用了。

但是为什么vim会突然间运行缓慢呢?看来只能另外找原因了。

在archlinux用virtualbox运行win7

笔记本上一直运行的是archlinux,在主板送修期间,为了给老婆看PPS,便在ultrabay上装了第二块硬盘,安装了win7。主板修好以后,这个win7便没有再启动过。于是便想将硬盘改为备份盘,然后在archlinux上虚拟一个win7。

按照官方wiki的介绍,我安装的是PUEL版,通过AUR安装。

安装之后无法运行,提示“VERR_VMX_MSR_LOCKED_OR_DISABLED”,经过google知道这是因为CPU的VT(Virtualization Technology,虚拟化技术)没有开启,我的机器CPU是i5,应该是可以开启VT的。在BIOS中修改以后即可。但是thinkpad的VT默认是关闭的吗?

另外一个问题是vboxdrv不能正常运行,使用“/etc/rc.d/vboxdrv setup”安装,但是我没有使用rc.conf的MODULES来启动,因为我并不是常常需要运行vbox的,在需要的时候执行一下即可:

[code language="powershell"]#modprobe vboxdrv
#modprobe vboxnetflt[/code]

加载第二个mod是因为我使用的是bridged方式的网络链接

安装32位的win7,速度很快。网上的资料说,这应该是得益于所谓的CPU VT吧。至少比我以前跑起来效果都要好。

至少,以后带本出去的时候,不用担心再遇到win only的情况了。而且,现在又多了一块硬盘~

Rhythmbox没有声音的问题

不记得是从什么时候开始,出现Rhythmbox播放没有声音的问题,包括MoviePlayer播放也没有声音,但是其他的播放器包括FlashPlayer播放都有声音,开始以为是ALSA出了问题,但是重新配置以后问题依旧。在这里找到解决方法。只用删除gstreamer0.10-pulse即可。使用pacman -Rsn删除,会删除4个包。删除以后,重启,所有音频设备运行正常。也许是这个包和前段时间更新的ALSA冲突吧。

2010年9月21日注:删除gstreamer0.10-pulse和其依赖的包以后,发现totem movie player(即gnome默认的播放器)不能缩放,包括浏览器插件也存在同样的问题,缩放播放器的时候,图像并不会改变。不知道是因为删除哪个包出了问题。现在改用gnome-mplayer,效果很好但是没浏览器插件。

用gparted分区

机器上的archlinux安装的时候,还不知道是否好用,便用了默认的分区方式:不使用lvm,/目录8G,/boot 100多M,除去swap,剩余的全部给了/home,没想到archlinux很合我的胃口,便一直用了下来,直到前段时间提示/空间不够。才发现只给8G的空间实在不够用。于是将pacman的cache目录移到/home下。但是这方法并不能解决根本,而且作为桌面系统,总是会安装不少软件的,修改分区大小才是重要的。于是找到gparted这个工具

gparted很好用,但是问题是不能对已经挂载的分区进行修改。

这里下载gparted live CD,但是无论是CD引导还是USB引导,过了引导界面就黑瓶,第二块硬盘上的东西现在也不好弄,于是便想,不知道ubuntu live CD上是否自带了有gparted呢?结果用前段时间刻录的ubuntu 10.04 live CD启动,果然有带gparted~

开着机器跑了一个通宵终于修改完成分区。目前看来运行正常,看来随时准备一张ubuntu live CD,是非常明智的选择。

在archlinux上运行FlashBuilder4

感谢fb4linux项目,在这篇文章的帮助下,成功的在archlinux上安装和运行基于eclipse的flashbuilder4。

整个安装过程非常简单,清晰。fb4linux的作者应该也是国人,相比之下真是自惭形秽。

不过似乎没有找到flashplayer10 debug plus for linux x86_64,debug的时候无法连接player。目前只能使用自己写的调试工具来调试了。

笔记:使用tp_smapi查看电池信息

首先确定安装tp_smapi,通过yaourt安装并且在MODULE中启用,然后:

[code language="powershell"]# cat /sys/devices/platform/smapi/BAT0/……[/code]

see

音量控制的有用的命令

[code language="powershell"]
amixer sset Master,0 5%+
amixer sset Master,0 5%-
[/code]

也许以后用得上

debian安装nvidia官方驱动后X下不能调整屏幕亮度的解决方法

环境:Thinkpad T410 + debian lenny 5.04 + linux-kernel-2.6.32-3,安装nvidia官方驱动后,不能在gnome中调整显示器亮度。

一种取巧的解决方法:

  1. ctrl + alt + F1,进入命令行;
  2. 通过快捷键调整亮度;
  3. ctrl + alt + F7,回到X。

比较好用的解决方法:

把下面配置加到xorg.xonf中的device项里,重启:

[code language="powershell"]Option "RegistryDwords" "EnableBrightnessControl=1"[/code]

———————————–
2010年9月14日补充,现在系统改为archlinux,这个设置目前看来无效,没有找到更好的办法,但是如果启动nvidia setting以后就可以设置了。

———————————–
2011年4月24日补充,archlinux下如果使用nvidia的闭源驱动,依旧可以使用第一种方式,第二种方式无效。如果使用nouveau开源驱动,则有效。

Hello world

Hi,我是Tang Bin,finalbug.org是我的个人站点。这里有更多关于我的内容。English readers please click here to learn more about me and this site.

Categories