性能优化维度

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
相关推荐
千里马学框架20 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
liangshanbo12151 天前
React 性能优化实战
性能优化·react
mmsx1 天前
Android GIS系列 内存加锁、SQLite 开事务:矢量数据集双层并发设计
android·性能优化·app
Pioneer000012 天前
我用 Redis + 网关做多模型 API 路由:缓存命中率 95%+ 的工程实践
人工智能·redis·后端·缓存·性能优化·架构
ZFJ_张福杰2 天前
【Flutter】Flutter 中有哪些耗时操作?从 UI 卡顿到 Isolate 性能优化
flutter·性能优化·卡顿·isolate
政企项目老覃2 天前
金融转账“幽灵失败“排查实录:从本地消息表到 Seata TCC 的选型与权衡
数据库·程序人生·性能优化·数据分析·系统架构
爱喝水的鱼丶2 天前
SAP-ABAP:MM 模块供应商主数据开发:字段扩展、分级管控与同步接口开发
开发语言·性能优化·接口·sap·abap·增强·经验交流
贾伟康2 天前
【HarmonyOS 7新能力|050】Core File Kit mmap工程封装:把接入逻辑放进可维护的分层结构
性能优化·harmonyos·arkts·文件系统·mmap
贾伟康2 天前
【HarmonyOS 7新能力|045】LazyLayoutAlgorithm工程封装:把接入逻辑放进可维护的分层结构
性能优化·harmonyos·arkts·arkui·懒加载
打工仔折腾 AI2 天前
数据库上 K8s 之后谁来管?拆解金仓 KES-Operator 的声明式运维方案
人工智能·后端·python·性能优化·ai agent 实战