sys 0m0.002s # 进程在内核中调用所消耗的CPU时间
user+sys是进程实际的CPU时间。如果多线程执行,这个时间可能大于Real。如果IO是瓶颈,则real会大于user+sys (单线程)。
查看正在运行的命令和其资源使用 top
统计信息区
第一行:任务队列信息,与uptime命令执行结果相同
17:32:34:系统当前时间
up 3 days, 8:04:主机已运行时间
5 users:用户连接数(不是用户数,who命令)
load average: 0.09, 0.12, 0.19:系统平均负载,统计最近1,5,15分钟的系统平均负载
补充:uptime -V可查询版本
第二行:进程信息
Tasks: 287 total:进程总数
2 running:正在运行的进程数
285 sleeping:睡眠的进程数
0 stopped:停止的进程数
0 zombie:僵尸进程数
第三行:CPU信息(当有多个CPU时,这些内容可能会超过两行)
1.5 us:用户空间所占CPU百分比
0.9 sy:内核空间占用CPU百分比
0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
97.5 id:空闲CPU百分比
0.2 wa:等待输入输出的CPU时间百分比
0.0 hi:硬件CPU中断占用百分比
0.0 si:软中断占用百分比
0.0 st:虚拟机占用百分比
第四行:内存信息(与第五行的信息类似与free命令)
8053444 total:物理内存总量
7779224 used:已使用的内存总量
274220 free:空闲的内存总量(free+used=total)
359212 buffers:用作内核缓存的内存量
第五行:swap信息
8265724 total:交换分区总量
33840 used:已使用的交换分区总量
8231884 free:空闲交换区总量
4358088 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
进程信息区
PID:进程id
PPID:父进程id
RUSER:Real user name(看了好多,都是这样写,也不知道和user有什么区别,欢迎补充此处)
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:进程使用的虚拟内存中被被换出的大小
RES:进程使用的、未被换出的物理内存的大小
CODE:可执行代码占用的物理内存大小
DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小
SHR:共享内存大小
nFLT:页面错误次数
nDRT:最后一次写入到现在,被修改过的页面数
S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
COMMAND:命令名/行
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
Flags:任务标志
默认情况下,只显示比较重要的列
文件系统和磁盘信息监测
查看系统硬盘大小和分配
df -h
du -sh *
软件安装
不同于windows,Linux下软件安装的方式比较多样,有些也比较复杂。每种安装方式都有自己的优点和局限,也都有可能遇到问题。在我们理解了原理之后,借助谷歌,可以更好地帮助解决问题。
系统包管理器安装
软件安装最方便的、一般也不容易出问题的是利用系统自带的包管理工具,可以解决大部分的依赖问题。
但也有一些不足,主要3点:
需要根用户的权限。
如果系统版本老,安装的软件版本也会比较老。使用新版本有时又会发生冲突。
生物信息学中不少软件不在系统的安装源里面。
解决这些问题,就需要自己去软件官网查找最新的分发包,又有两种可能,一种是分发包直接就是编译好的软件,下载下来设置下可执行属性并放入环境变量就可以运行了,如blast或bowtie这样的工具。
另一种则是需要从源码编译安装,下面主要讲解下这个。
源码编译安装