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. ...
随机推荐
- Swift全局变量的线程安全分析
一.示例代码 import UIKit let obj = TestObj() class TestObj { init() { print("\(type(of: self)) init& ...
- 语义分割评价指标(Dice coefficient, IoU)
语义分割任务常用的评价指标为Dice coefficient和IoU.Dice和IoU都是用来衡量两个集合之间相似性的度量,对于语义分割任务而言即用来评估网络预测的分割结果与人为标注结果之间的相似度. ...
- uniapp 小程序分享功能
上个月在做小程序的项目时,甲方需要给小程序添加个分享的功能,查看uniapp官方文档后,发现uniapp有自带的小程序分享功能(https://uniapp.dcloud.io/api/plugins ...
- uniapp 输入有值后按钮变色
我们在开发中难免会遇到一些登录注册输入框中的值为空时,按钮的状态变成为不可点击的状态,当输入框有值后就把按钮变为可点击的状态 代码部分: <input placeholder="请输入 ...
- windows报错
如果说你dns没有权威的话1.先去long.com上面右键属性把"区域传送给所有服务器打勾"2.右键属性,在名称分析器中,输入要添加为辅助dns的服务器的ip显示解析成功就可以了
- vue单个插槽
当子组件模板只有一个没有属性的插槽时,父组件传入的整个内容片段将插入到插槽所在的 DOM 位置,并替换掉插槽标签本身. # 子组件 <div> <h2>我是子组件的标题< ...
- NCNN的内存显存分配器ncnn::Allocator & ncnn::VkAllocator翻译及其差异对比的学习笔记(nihui亲审过滴)
NCNN的内存分配器 ncnn::Allocator 通用内存分配器 ncnn::PoolAllocator 内存池分配器 可以设置池大小,减少分配内存和析构内存次数,空间换时间 ncnn:: ...
- shell基础概述
1.0 编程的目的 计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果. 编程 ...
- GlaDS应用
题目:Antarctic basal environment shaped by high-pressure flow through a subglacial river system 文章使用数值 ...
- SpringMVC 工作原理?
a.客户端发送请求到 DispatcherServlet b.DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller c.Controller 调 ...