性能优化维度

CPU

首先检查 cpu,cpu 使用率要提升而不是降低。其次CPU 空闲并不一定是没事做,也有可能是锁或者外部资源瓶颈。常用top、vmstat命令查看信息。

vmstat 命令:

top: 命令

IO

iostat 命令:

Memory

free 命令:

**温馨提示:**两者都是RAM中的数据。简单来说, buffer是即将要被写入磁盘的, cache是被从磁盘中读出来的。这二者是为了提高1O性能的,并由OS管理,并非应用自己分配的内存,而是OS自己根据需要对空闲内存进行的额外利用。因为这部分只是缓存,降低IO,提升性能,只要应用程序有需要,os
可以直接将buffer写入磁盘,将cache删掉来得到空闲内存给应用程序使用。

buffer是用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。缓冲(buffers)是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

cache经常被用在磁盘的1/0请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提供系统性能。缓存(cached)是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。

因此:

-/+ buffers/cache的含义即:使用内存是实际当前使用内存减去buffers/cache之和;空闲内存是实际空闲内存加上buffers/cache之和。所以是 -/ +

查看空闲内存,确定应用是否有内存泄漏时,只能以Free的第三行为依据,第二行其实作用不大,只是可以看到OS当前的buffer和cache大小。

Network

nicstat 命令(需要安装):


安装:

1、wget http://sourceforge.net/projects/nicstat/files/nicstat-1.92.tar.gz

2、tar -zxvf nicstat-1.92.tar.gz

3、sudo vim Makefile

CFLAGS = $(COPT) -m32 #将此行修改为如下:

CFLAGS = $(COPT)

4、sudo make -f Makefile install


列说明:

bash 复制代码
Time列:表示当前采样的响应时间
loandetho:卡名称
rKB/s:每秒接收到千字节数
wKB/s:每秒写的千字节数
rPk/s:每秒接收到的数据包数目
wPk/s:每秒写的数据包数目
rAvs:接收到的数据包平均大小
wAvs:传输的数据包平均大小
%Util:网卡利用率(百分比)
Sat:网卡每秒的错误数.网卡是否接近饱满的一个指标.尝试去诊断网络问题的时候,推荐使用-x选项去查看更多的统计信息

查看tcp相关信息:

bash 复制代码
[root@centos192 nicstat-1.92]#. /nicstat. sh -t
05:15:05	InKB	OutKB	InSeg	OutSeg	Reset	AttF	%ReTX	InConn OutCon Drops
TCP0.000.004.013.500.000.010.0000.050.090.0

#InKB:表示每秒接收到的千字节
#OutKB:表示每秒传输的千字节
#InSeg:表示每秒接收到的TCP数据段(TCP Segments)
#OutSeg:表示每秒传输的TCP数据段(TCP Segments).
#Reset:表示TCP连接从ESTABLISHED或CLOSE-WAIT状态直接转变为CLOSED状态的次数
#AttF:表示TCP连接从SYN-SENT或SYN-RCVD状态直接转变为CLOSED状态的次数,再加上TCP连接从SYN-RCVD
#状态直接转变为LISTEN状态的次数
#%ReTX:表示TCP数据段(TCPSegments)重传的百分比.即传输的TCP数据段包含有一个或多个之前传输的八位字节
#InConn:表示TCP连接从LISTEN状态直接转为SYN-RCVD状态的次数
#OutCon:表示TCP连接从CLOSED状态直接转变为SYN-SENT状态的次数
#Drops:表示从完成连接(completed connection)的队列和未完成连接(incomplete connection)的队列中丢弃的连接次数

查看udp相关信息:

bash 复制代码
[root@centos192nicstat-1.92] #./nic stat.sh-u
06:39:42    InDG    OutDG    InErr    OutErr
UDP0.010.010.000.00
#In DG:每秒接收到的UDP数据报(UDP Datagrams)
#Out DG:每秒传输的UDP数据报(UDP Datagrams)
#In Err:接收到的因包含错误而不能被处理的数据包
#OutEr r:因错误而不能成功传输的数据包.

#默认以KB为单位,现在以M单位查看:
[root@centos192nicstat-1.92] #./nic stat.sh-MTimemIntr Mbpsw MbpsrPk/swPk/srA vswAvs%UtilSat
05:16:55lo0.010.012.552.55341.2341.20.000.00
05:16:55eth 00.010.001.611.08667.3163.70.000.00
相关推荐
黑狼传说17 小时前
前端项目优化:极致最优 vs 相对最优 —— 深入探索与实践
前端·性能优化
Lill_bin19 小时前
Lua编程语言简介与应用
开发语言·数据库·缓存·设计模式·性能优化·lua
人工智能培训咨询叶梓2 天前
MobiLlama,面向资源受限设备的轻量级全透明GPT模型
人工智能·gpt·语言模型·自然语言处理·性能优化·多模态·轻量级
Flying_Fish_roe2 天前
JVM 性能优化与调优-ZGC(Z Garbage Collector)
jvm·性能优化
Flying_Fish_roe3 天前
JVM 性能优化与调优-GraalVM
jvm·性能优化
四代水门3 天前
游戏性能优化
游戏·性能优化
安卓美女3 天前
Android自定义View性能优化
android·性能优化
Flying_Fish_roe3 天前
JVM 性能优化与调优-Shenandoah GC
jvm·性能优化
旺小仔.3 天前
【数据结构篇】~排序(1)之插入排序
c语言·数据结构·算法·链表·性能优化·排序算法
洁洁!3 天前
深入分析计算机网络性能指标
网络·计算机网络·性能优化