innodb_buffer_pool% 状态分析
Write by lyc at 2019-11-20参考博文:mysql参数优化(解决大并发,高IO)
1.查看innodb_buffer_pool 缓冲区状态1234567891011121314151617181920212223mysql> show status like 'Innodb_buffer_pool_%';+---------------------------------------+----------------+| Variable_name | Value |+---------------------------------------+----------------+| Innodb_buffer_pool_dump_status | not started || Innodb_buffer_pool_load_status | not started || Innodb_buffer_pool_pages_data ...
mysql性能优化:thread线程参数
Write by lyc at 2019-11-19
1.thread_cache_sizeMySQL服务缓存以重用的线程数:
当客户端断开连接的时候,如果线程缓存没有使用满,则客户端的线程被放入缓存中。
如果有客户端断开连接后再次连接到MySQL服务且线程在缓存中,则MySQL服务会优先使用缓存中的线程;如果线程缓存没有这些线程,则MySQL服务器会创建新的线程。
如果数据库有很多的新连接,可以增加这个参数来提升性能。
如果MySQL服务器每秒有上百个连接,可以增大 thread_cache_size 参数来使MySQL服务器使用缓存的线程。
2.查看线程使用情况查看线程的全局使用情况
12345678910mysql> show global status like 'Thread%';+-------------------+-------+| Variable_name | Value |+-------------------+-------+| Threads_cached | 93 | # 已缓存的线程数| Threa ...
pt-index-usage 分析索引使用情况
Write by lyc at 2019-11-13pt-index-usage
pt-index-usagept-index-usage 能够从日志当中分析索引的使用情况,并且生成一个报表。
打印报告1$ pt-index-usage ./slow_log_3306.log --host=192.168.xxx.xxx --port=3306 --user=root --password=123456 > /data/1.log 2>&1
将报告写到数据库中123mysql > create database percona;$ pt-index-usage ./slow_log_3306.log --host=192.168.xxx.xxx --port=3306 --user=root --password=123456 --no-report --save-results-database D=percona
查看报告1234567mysql > ALTER TABLE ...
pt-duplicate-key-checker 检查重复索引
Write by lyc at 2019-11-11Percona Toolkit使用测试(4)PT-DUPLICATE-KEY-CHECKER
pt-duplicate-key-checker
pt-duplicate-key-checker 检查重复的索引,给出删除意见。
检查MySQL表上SHOW CREATE TABLE的输出,如果它发现与另一个索引以相同顺序覆盖相同列的索引,或者覆盖另一个索引的最左端前缀,它就输出可疑的索引。
默认情况下,索引必须具有相同的类型,因此BTREE索引和全文索引不算重复,即使它们具有相同的列。您可以覆盖它
它还查找重复的外键。一个重复的外键与同一个表中的另一个外键覆盖相同的列,并引用相同的父表。
输出以一个简短的摘要结束,其中包括对重复索引使用的总大小(以字节为单位)的估计。这是通过将索引长度乘以它们各自表中的行数来计算的。
pt-duplicate-key-checker在判断的时候尽可能的让组合索引保持下来。
参数说明
--all-structs 比较不同结构(BTREE、HASH等)的索引。默认情况下,这是禁用的,因为与全文索引覆盖相 ...
Ansible playbook:错误处理+条件判断
Write by lyc at 2019-11-8参考博文:ansible笔记(29):条件判断与错误处理
1.fail 模块用于终止当前playbook的执行,通常与条件语句组合使用,当满足条件时,终止当前play的运行。
12345678910111213141516--- # check nginx is running - name: check nginx process status shell: > ps aux | grep nginx | egrep -v "grep|php-fpm" | wc -l register: nginx_process_count - name: check nginx 80 http port status shell: > netstat -lntup | grep nginx | grep 80 | wc -l register: nginx_port_count - name: check nginx is runnin ...
Ansible playbook:block
Write by lyc at 2019-11-5参考博文:ansible笔记(28):条件判断与block
1.block + when
block将多个任务整合成一个块,这个块被当作一个整体
对这个block块添加when条件判断,当条件成立时,则执行这个block块中的所有任务。
123456789101112---- name: name1 debug: msg: "task1 not in block" - name: name2 block: - debug: msg: "task2 in block" - debug: msg: "task3 in block" when: 2<1 # 当when条件成立时执行block块下的两个task
2.block + rescue + always
block错误处理,相当于python的try,捕获错误,不会让程序终止。
block块下有task失败,则执行rescue下的块。无论block是否 ...
Ansible模块:debug
1.Ansible debug模块debug模块调试输出12345678910111213---# 输出参数- debug: var=nginx_cmd- debug: var: nginx_conf['conf80']# 输出字符串- debug: msg: "my var is {{ nginx_conf['conf443'] }}"- debug: msg: "System init successfully."
debug 输出数据类型123456789- debug: msg: "IS_CN={{ IS_CN }}, type={{ IS_CN | type_debug }}"TASK [init : debug] *********************************************************** ...
pt-online-schema-change 在线DDL
Write by lyc at 2019-10-30参考博文:在线更改MySQL表结构工具pt-online-schema-changept-online-schema-change使用说明、限制与比较pt-online-schema-change的原理解析与应用说明
一、pt-online-schema-change 介绍1.pt-osc 特点
percona-toolkit里带的工具,安装percona-toolkit即可
在线执行DDL操作,不会阻塞读写操作
选择业务低谷时操作,操作前先备份数据
操作前确认该表没有未提交的大事务或者慢查询
2.pt-osc 使用限制
如果修改表有外键,除非使用 --alter-foreign-keys-method 指定特定的值,否则工具不予执行
被修改表必须要有主键或者唯一索引,否则报错
被修改表上不能有针对after delete|insert|update三个触发器,否则修改表结构操作失败
3. pt-osc 工作原理
创建一个和要执行 Alter 操作的表一样的新的空表结构(是alter之前的结构),新表名为tablename ...
Ansible模块:包管理
参考博文ansible笔记(9):常用模块之包管理模块
1.yum_repository 模块管理远程主机上的 RPM 仓库
yum_repository 模块参数
name 必须参数,用于指定要操作的唯一的仓库ID,也就是.repo配置文件中每个仓库对应的“中括号”内的仓库ID
baseurl 设置yum仓库的baseurl
description 设置仓库的注释信息,对应.repo文件里的name字段的内容
file 设置仓库的配置文件名称,即设置.repo配置文件的前缀。在没有配置的情况下,默认以name参数的参考ID作为配置文件名称
enabled 默认值yes,是否激活yum源
gpgcheck 默认值no,是否开启rpm包验证
gpgcakey 当gpgcheck=yes时,需要使用此参数指定验证包所需的公钥。
state
present 默认值,设置
absent 删除对应的yum源
2.yum 模块CentOS 包rpm管理模块。
yum 模块参数
name 必须参数,指定要安装的软件包名称,name=httpd
state 指定yum使用的方法
insta ...
Ansible模块:系统配置相关
参考博文:ansible笔记(7):常用模块之系统类模块
1.cron 模块Asnible 远程配置目的主机的crontab计划任务。
cron 模块参数
name 添加注释信息,必须添加。
job 计划任务具体执行的内容
state
absent 删除
minute, hour, day, month, weekday 时间参数
disabled=yes 是否注释计划任务,yes注释,no不注释(默认)
1234567891011# 添加一个时间同步 crontab# */5 * * * * /usr/sbin/ntpdate cn.pool.ntp.org > /dev/null# 添加计划任务$ ansible webserver -m cron -a "name='ntp' job='/usr/sbin/ntpdate cn.pool.ntp.org > /dev/null' minute='*/5'"# 删除 state=absent$ ansible webserver ...