性能相关杂记

2022-08-14  本文已影响0人  cloudFans

linux7 默认安装sysstat
linux8不默认安装
yum install -y sysstat
linux8将sysstat计划任务放在systemd的timer

vmstat 1 刷新一次
vmstat 1 3 刷新3次 ,每隔1秒

mpstat是cpu子系统
mpstat 1 3 看cpu负载
mpstat -P all 能看到内核的负载

iostat -x 看到更详细,能看到队列

top 里load average要除以cpu数,在0.7以下正常

top 按shift +m 按内存 排序
按shift + h 按cpu排序

lscpu有几颗cpu,

sar查看系统历史负载

更强大的工具:
yum install -y pcp-gui
pmcd pmlogger
pmchart
pmval -t 2 mem.freemem
pmval info 可查看能采集的子系统的内容
pminfo -dt proc.nprocs 查看参数说明
pmval proc.nprocs
cd /var/log/pcp/pmlogger
查看历史数据库
pmval -a 20210618.04. kernel.??? 可查看到每隔1秒的系统负载
通过以上工具可查看历史死机时间点前后的历史信息


如何调优:
/proc /sys 这2个目录都是内存信息,关机后就没了,是伪目录 ,是挂载到内在的目录
搞清楚这2个目录 就已经是大神了

cd /proc
有所有进程的情况
/proc/sys 目录是内核的所有可调节项
cd /proc/sys/vm是内存参数
cat swappiness查看swap压力值设置
修改,只能echo:
echo 10> swappiness查看swap压力值设置
cat swappiness,越小越不会把
重启后会回归原值
永久生效:使用sysctl工具
sysctl -a 列出所有内核可调节项
sysctl -a |grep swap   
得到:vm.swappiness=10,就是刚才临时调整的值

sysctl -w vm.swappiness=20 也是临时修改
永久修改:vim /etc/sysctl.conf
添加修改键值:
vm.swappiness=50
保存退出
sysctl -p 永久生效


modinfo st  是硬件驱动
mod提供各种模块功能和驱动

如何限制服务的资源占用:
给用户
给服务
给进程
限制CPU\内存\io

经典的通过 pam_limit 和 /etc/security/limits.conf
通过 cgroup来做资源,对systemd


cd /etc/pam.d
password-auth
system-auth
diff password-auth system-auth 默认是一样的

session required pam_limit.sso
man 8 pam_limit


man -k systemd
man systemd.resource-control
可以看到不同的限制

写一个简单的程序耗尽资源
cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/load.service
vi $_


which md5sum
/usr/bin/md5sum
修改ExecStart=/usr/bin/md5sum /dev/urandom
删除其他

systemctl daemon-reload
systemctl start load
top查看,可以看到某颗cpu 100%

修改load.service进行限制
CPUAccounting=yes
CPUQuarto=50%

systemctl daemon-reload
systemctl restart load
top可以看到进程最高到50%


tuned-adm limits
yum list|grep tuned

yum install -y oracle-profile
tuned-adm list可以看到多了oracle
cd /usr/lib/tuned可以看到安装的配置集
vim oracle-profile
可以看到oracle服务器的内核设置

cd /usr/lib/tuned
mkdir demo
cd demo
vim demo.profile
[main]
include=latency-performance
[sysctl]
vm.swappiness=70
[disk]
elevator=none 调整电梯算法
保存退出
tuned-adm profile latency-performance
cat /proc/sys/vm/swappiness
发现还没改过来
因为刚才手工修改了/etc/sysctl.conf,这个文件优先级较高

可以把这些调优配置成profile,就可以共享重用了

systemtap配置内核模块
yum install -y systemtap
自带了很多脚本,可以编译成内核模块,用systemtap来运行,可以进行kernal组件测试
进行性能分析
需要gcc,nernel-debuginfo,kernel-devel软件运行
stap命令.stp脚本文件编译为kernel
这个工具需要订阅
注:lab tracing-diagnose start

stap-prep 可以自动装好




上一篇下一篇

猜你喜欢

热点阅读