Linux性能主要有以下5个方面:
CPU
MEMORY
IO
NETWORK
Linux进程内存占用
我们测试的系统,总的来说可分为二类:
第一,IO Bound,这类系统会大量消耗内存和底层的存储系统,它并不消耗过多的CPU和网络资源(除非系统是网络的)。IO bound系统消耗CPU资源用来接受IO请求,然后会进入休眠状态。数据库通常被认为是IO bound系统。
第二,CPU Bound,这类系统需要消耗大量的CPU资源。他们往往进行大量的数学计算。高吞吐量的Web server,MailServer通常被认为是CPU Bound系统。
在性能测试中首先要做的是建立基线(Baseline),这样后续的调整才会有一个参考标准。值得注意的是,在测试基线的时候,一定要保证系统工作在正常的状态下。
CPU
常用的监视工具有:mpstat,vmstat,top。
MEMORY
首先说说虚拟内存和物理内存:
· 虚拟内存就是采用硬盘来对物理内存进行扩展,将暂时不用的内存页写到硬盘上而腾出更多的物理内存让有需要的进程来用。当这些内存页需要用的时候在从硬盘读回内存。这一切对于用户来说是透明的。通常在Linux系统说,虚拟内存就是swap分区。在X86系统上虚拟内存被分为大小为4K的页。
· 每一个进程启动时都会向系统申请虚拟内存(VSZ),内核同意或者拒就请求。当程序真正用到内存时,系统就它映射到物理内存。RSS表示程序所占的物理内存的大小。用ps命令我们可以看到进程占用的VSZ和RSS。
常用的监视工具有:free vmstat
IO
监控IO的常用命令为iostat
NETWORK
监控的常用命令为netstat
Linux进程内存占用查看方法
常用的监视工具有:top pmap ps aux