RHCA rh442 001 调优本质 调优方法 监控
调优是一种感知
调优按照成本和性能
一.架构及调优
二.代码及调优
三.配置类调优
从调优效果和成本成正比
设计电商,日访问百万级,未来可能千万级
数据库 系统 服务器多少台 缓存 appache,nginx选什么 负载均衡用什么 七层怎么设计..... (可不可以线性扩容?) 一百万预算
架构级
12306最复杂
电商可以充分利用缓存技术。电商有10000件商品,卖了9000。还剩1000,电商也可也不用着急。慢慢的更新
12306每一天,每一趟车,每一个座位都是唯一的。不能利用缓存机制
12306重新做了架构设计
12306客户做10次查询,才会有一次支付,查询是大头。他们把架构切分
微服务化,把服务分拆。后台有很多台服务器
电商卖两件退两件前台完全不会受影响,数据库也不用马上更新
腾讯视频
几百万人看热门高清视频,需要几百g带宽,不会出现卡,以及还会出现缓存
百分之90的流量来自cdn缓存。分散在各地机房分担业务
架构该如何设计?
房子该怎么设计才好
代码级
你把sql语句写成循环
把简单代码写的复杂
配置级
磁盘 三种调度算法
deadline最终期限(小IO) cfq完全公平原则(不好不坏) noop无调优 as适合于大IO的算法
守门员站中间,对手向哪里踢?
站中间就是折中,所以才需要我们调优
让数据库就跑在这个八个cpu上,另外八个跑其他业务
利用缓存,否则数据库来回在16个cpu上跑失去缓存意义
有些多喝热水
有些病吃个药就好
有些需要大手术
考试有东西所以不难,没东西rh442最难
rh442 不用死记硬背,要理解
scale 天平,磅秤;天平盘 进制位
学会使用计算器
bc

未保留小数
scale可以保留小数,不是四舍五入,是直接去掉的那种
^20在不同的保留小数值上,误差会变大
单位
KB:1000为换算单元
KiBi:1024为换算单位
Kb: bit位 需要/8
KB:Btye
单位换算,非常简单

调优的方法 (还有许多)
grub2
vi /etc/default/grub

改了之后
[root@localhost boot]# grub2-mkconfig -o /boot/grub2/grub.cfg
通过重新给值改变内核参数
[root@localhost boot]# vi config-4.18.0-193.el8.x86_64
告诉你我打开了哪些功能,他只是告诉你,改成n也没用
编译内核的时候保存你的哪些选项
改功能重新编译内核工作量就大了
sysctl
除了grub2还可以
vim /etc/sysctl.conf
参数写在这个里面,下次开机就可以读到
sysctl -a 列出可调优参数
sysctl改的参数在 /proc/sys

可以通过echo调优,立即生效。修改内存中数据,临时有效
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0
直接-p读一遍文件
[root@localhost ~]# vim /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_use_pmtu = 0
改成0再读
系统启动会读sysctl.conf
[root@localhost ~]# sysctl -a | wc -l
1248
老师怎么有2204个我才1248个
proc进程
proc下的数字都是进程号
对进程调优,就是对文件夹调优

sys目录
cd /sys/ 设备、总线、模块相关
以上都是内存中
立即生效,重启可能就不生效
将所有命令写成一个服务,开机运行服务
[root@localhost ~]# vi /etc/rc.local
命令每次开机都启动,可以写在这里面
[root@localhost /]# cd /etc/rc.d/
[root@localhost rc.d]# ls
init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local
[root@localhost rc.d]# ll
total 4
drwxr-xr-x. 2 root root 37 Jun 22 20:06 init.d
drwxr-xr-x. 2 root root 6 Sep 10 2018 rc0.d
drwxr-xr-x. 2 root root 6 Sep 10 2018 rc1.d
drwxr-xr-x. 2 root root 6 Sep 10 2018 rc2.d
drwxr-xr-x. 2 root root 6 Sep 10 2018 rc3.d
drwxr-xr-x. 2 root root 6 Sep 10 2018 rc4.d
drwxr-xr-x. 2 root root 6 Sep 10 2018 rc5.d
drwxr-xr-x. 2 root root 6 Sep 10 2018 rc6.d
-rw-r--r--. 1 root root 484 Jun 23 15:37 rc.local
[root@localhost rc.d]#
得给rc.local执行权限
以服务形式启动
[root@localhost system]# vim /usr/lib/systemd/system/tcsd.service
模仿
[Unit]
Description=TCG Core Services Daemon
[Service]
Type=forking
ExecStart=/sbin/tcsd
[Install]
WantedBy=multi-user.target
[root@localhost ~]# cp realtime /usr/local/bin/
[root@localhost ~]# cd /usr/lib/systemd/system/
[root@localhost system]# pwd
/usr/lib/systemd/system
[root@localhost system]# cat realtime.service
[Unit]
Description=Realtime process
[Service]
Type=forking
ExecStart=/usr/local/bin/realtime &
[Install]
WantedBy=multi-user.target
[root@localhost system]# systemctl daemon-reload
systemctl enable realtime.service
Created symlink /etc/systemd/system/multi-user.target.wants/realtime.service → /usr/lib/systemd/system/realtime.service.
照着其他服务写服务
加载服务时,可以读到/etc/systemd/system
bad-setting 可以systemctl status 查看更多信息
调优的功能
参数不知道什么意思
学会查帮助文档,里面有英文的参数解释
[root@localhost yum.repos.d]# yum list all | grep kernel-doc
kernel-doc.noarch 4.18.0-193.el8
[root@localhost yum.repos.d]# rpm -ql kernel-doc
查找他的所有文件
[root@localhost kernel-doc-4.18.0]# grep -irn ip_forward Documentation/
Documentation/s390/Debugging390.txt:1930:cat /proc/sys/net/ipv4/ip_forward
Documentation/s390/Debugging390.txt:1933:telling me ip_forwarding is not on to switch it on I can do
Documentation/s390/Debugging390.txt:1934:echo 1 > /proc/sys/net/ipv4/ip_forward
Documentation/s390/Debugging390.txt:1936:cat /proc/sys/net/ipv4/ip_forward
Documentation/virt/uml/UserModeLinux-HOWTO.txt:1311: bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
Documentation/virt/uml/UserModeLinux-HOWTO.txt:1830: host# echo 1 > /proc/sys/net/ipv4/ip_forward
Documentation/networking/ip-sysctl.txt:3:ip_forward - BOOLEAN
Documentation/networking/ip-sysctl.txt:46:ip_forward_use_pmtu - BOOLEAN
Documentation/networking/ip-sysctl.txt:84:ip_forward_update_priority - INTEGER
[root@localhost kernel-doc-4.18.0]# pwd
/usr/share/doc/kernel-doc-4.18.0
[root@localhost kernel-doc-4.18.0]#
[root@localhost kernel-doc-4.18.0]# vi Documentation/networking/ip-sysctl.txt

红帽7光盘里没有这个包
fat32 < 4G
应付光盘用户
[root@localhost tmp]# find /proc /sys -perm /200 -type f > /tmp/tunables
可调优文件
监控
监控为调优的基础。通过监控发现系统的瓶颈
CPU 内存 磁盘 网络 四大子系统
yum -y install sysstat

avg-cpu 和为100% idle为空闲率
iostat不加任何参数,自从系统启动以来我们所看到的状态,不是当前的结果
开机到现在的平均值
iostat 1 5 /dev/sda 一秒显示一次,连续显示五次
user level的使用百分比,应用程序消耗的比较多
system level 内核的级别消耗多
nice nice调cpu消耗资源
iowait io等待时间太长,系统瓶颈为磁盘
steal 虚拟化相关。因虚拟化的开销而消耗资源
idle 空闲率
kB_read/s kB_wrtn/s 每秒的值 kB_read kB_wrtn 总值
tps 每秒传输io请求数
小io与大io
每秒读和写加在一起 / tps 为每秒io大小
可以得知io大小,可以判定机器的io大小来判定调优思路
同样的资源,虚拟机差于物理机
地址转换带来的开销
虚拟化 地址转换
dd if=/dev/zero of=/dev/null &
cpu空消耗
dd 为内核提供命令所以 消耗的是system
一个dd消耗一个cpu

top看到的是一个满载的cpu
多个dd同时运行可以cpu负载均衡
进程轮询,负载均衡
但是chrt -f 之后就不行。因为指定了cpu的机制
抢占资源
chrt -f 10 dd if=/dev/zero of=/dev/null &
先进先出
测试硬盘
dd if=/dev/zero of=/tmp/test bs=4k count=102400 oflag=direct
跳过内存直接写硬盘 (通常情况下,写到缓存慢慢写进磁盘)
4k为小io场景
user space 用户空间
kernel space 内核空间 (装完内核就会有)
存储 RAID 10 块盘 到OS只能看到一块盘
RAID性能差,也许是其中某一块盘有问题
可以进入到存储底层的OS去看
iostat -x 可以看到具体情况
svctm:IO平均服务时间

总结
调优本质 调优难。综合性很强,上层应用,底层原理
调优方法
换算单位
iostat
RHCA rh442 001 调优本质 调优方法 监控的更多相关文章
- MySQL管理之道:性能调优、高可用与监控内置脚本
MySQL管理之道:性能调优.高可用与监控内置脚本 随书附送脚本 keepalive配置文件和脚本开源工具pssh批量管理服务器(python) 下载地址 http://files.cnblogs.c ...
- MySQL管理之道:性能调优、高可用与监控》迷你书
MySQL管理之道:性能调优.高可用与监控>迷你书 MYSQL5.5.X主要改进 1.默认使用innodb存储引擎2.充分利用CPU多核处理能力3.提高刷写脏页数量和合并插入数量,改善I/O4. ...
- iOS-Core-Animation-Advanced-Techniques/12-性能调优/性能调优.md
性能调优 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...
- MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》
最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...
- MySQL管理之道,性能调优,高可用与监控(第二版)pdf下载
MySQL管理之道,性能调优,高可用与监控(第二版) 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和新知识的拓展,同时也针对运维人员.DBA等相关工作者会遇到的有代表性的疑难问题给出了 ...
- JVM调优总结-调优方法
JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪 JProfiler ...
- java虚拟机学习-JVM调优总结-调优方法(12)
JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 ...
- java性能调优---------------------JVM调优方案
JVM的调优的主要过程有: 1.确定堆内存大小(-Xmx.-Xms) 2.合理分配新生代和老年代(-XX:NewRatio.-Xmn.-XX:SurvivorRatio) 3.确定永久区大小(-XX: ...
- Java性能调优(一):调优的流程和程序性能分析
https://blog.csdn.net/Oeljeklaus/article/details/80656732 Java性能调优 随着应用的数据量不断的增加,系统的反应一般会越来越慢,这个时候我 ...
- spark调优——JVM调优
对于JVM调优,首先应该明确,(major)full gc/minor gc,都会导致JVM的工作线程停止工作,即stop the world. JVM调优一:降低cache操作的内存占比 1. ...
随机推荐
- 使用kubadm部署一套k8s学习平台环境
使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...
- Xcode 最近使用的一些问题
1.上架的App如何测试推送? 苹果的证书分为开发证书和发布证书,上架AppStore的App应该使用发布证书进行配置,但是发布证书编译出包的App无法安装到手机上 只有一种方式,采用Ad hoc p ...
- zabbix-agent修改主动模式
1.zabbix-agent工作模式 zabbix-agent进程,有两种工作模式,主动模式,被动视频 1.1 被动模式 被动模式是指 zabbix-server 将需要请求的数据,发给zabbix- ...
- resttemplate调用
Map<String, Object> queryForHttp(String url, Map<String, Object> header, Map<String, ...
- CSS 属性计算
CSS 属性计算过程 你是否了解 CSS 的属性计算过程呢? 有的同学可能会讲,CSS属性我倒是知道,例如: p{ color : red; } 上面的 CSS 代码中,p 是元素选择器,color ...
- Yapi部署到kubernetes(k8s)--Azure AKS
背景 找来找去都没找到简单方便的部署yapi到k8s的教程,就自己写了个: 本教程部署的版本是: 1.10.2 部署步骤 克隆仓库: git clone https://github.com/gebi ...
- 浮点数格式:FP64, FP32, FP16, BFLOAT16, TF32之间的相互区别
浮点数格式 (参考1,参考2) 浮点数是一种用二进制表示的实数,它由三个部分组成:sign(符号位).exponent(指数位)和fraction(小数位).不同的浮点数格式有不同的位数分配给这三个部 ...
- vc++6.0设置字体
vc++6.0设置字体 如上图, 在注册表上找到这个位置. 自已设置FontFace和FontSize即可. 计算机\HKEY_CURRENT_USER\Software\Microsoft\Devs ...
- 基于.NET Core + Jquery实现文件断点分片上传
基于.NET Core + Jquery实现文件断点分片上传 前言 该项目是基于.NET Core 和 Jquery实现的文件分片上传,没有经过测试,因为博主没有那么大的文件去测试,目前上传2G左右的 ...
- 关于Android开机动画调试的一点小小的经验
格式要求: 开机动画图片既可以是jpg文件,也可以是png文件,只是一定要按顺序命名.文件名命名的国际惯例是五位数,即:00000.00001. 00002--也可以是文件夹名称+下划线+序数,即:p ...