分类 IT运维 下的文章

操作思路

安装、测试、对比

环境检查

SQL> show parameter session;
SQL> show parameter processes;
alter system set processes = 3000 scope = spfile;
alter system set sessions=3800 scope=spfile;

SQL> show parameter sharing ---->有三种不同的状态
SQL> alter session set cursor_sharing=exact; 通常来说,exact值是Oracle推荐的,也是默认的,它要求SQL语句在完全相同时才会重用,否则会被重新执行硬解析操作。
SQL> alter session set cursor_sharing=similar;similar是在Oracle认为某条SQL语句的谓词条件可能会影响到它的执行计划时,才会被重新分析,否则将重用SQL。
SQL> alter session set cursor_sharing=force; force是在任何情况下,无条件重用SQL。
------------------------------创建AWR快照
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
drop tablespace soe including contents and datafiles;

测试前后分别取一次快照
安装swingbench测试软件,直接解压缩即可运行。
unzip -x swingbench25919.zip
 
注意要按照java8
yum -y install java-1.8.0-openjdk*
进入swingbench/bin目录执行oewizard导入1G测试数据,并修改数据库连接名和DBA密码
数据导完之后在该目录下运行swingbench执行测试,修改数据库连接名,用户连接数设置为300,测试时间设置为10分钟
修改Distributed Controls用于测试过程中搜集测试监控信息,修改完之后测试连接是否正常,并可以统计主机的cpu  disk IO 信息
参考信息
SwingBench下载:
http://www.dominicgiles.com/downloads.html
参考相关文章:
http://www.linuxidc.com/Linux/2016-04/130297.htm
http://blog.csdn.net/xiaofan23z/article/details/7978998
链接:https://pan.baidu.com/s/1o4CL0lENfmuEEFj-VwvDGQ
提取码:bwwh

压测流程
1、 应用模拟不同场景下的压力访问
10、50、100、200、500、1000
2、 数据库端启动osw 进程,每10s一次,报告cpu、io、内存结果进行压缩保存本地
3、 awr快照每15分钟保存一次
4、 使用sql查询获取会话超过200的时间点
5、 使用awr获取压测时间点的报告信息,并分析性能问题
6、 根据awr的top sql 分析sql tuning monitor报告,反馈给开发,或联系开发共同商讨。
7、 使用ash报告 addm报告对sql进行优化。

mysql压测工具测试
一、mysql自带压测工具mysqlslap
1、更改其默认的最大连接数
vi /etc/my.cnf
max_connections=2000
2、查看最大连接数
show variables like '%max_connects%';
3、进行压力测试
mysqlslap --defaults-file=/etc/my.cnf \
--concurrency=100,200 \ ---模拟两次读写并发,第一次100,第二次200
--iterations=20 \ ---模拟查询20秒
--number-int-cols=20 \ ---测试表包含20个init字段
--number-char-cols=30 \ ---测试表包含30个char字段
--auto-generate-sql \ ---自动生成SQL脚本
--auto-generate-sql-add-autoincrement \ ---自动添加一个自动增长的列到测试表
--auto-generate-sql-load-type=mixed \ ---指定测试加载类型
--engine=myisam,innodb \ ---测试引擎分别为myisam、innodb
--number-of-queries=2000 \ ---每次执行2000个查询请求
--query=query.sql ---指定模拟查询用sql文件
--create=create.sql ---指定模拟创建用sql文件
-uroot -pcqfae0630 \ ---用户名、密码
--verbose ---详细模式,打印有关详细信息
4、测试结果
Benchmark

Running for engine myisam
Average number of seconds to run all queries: 1.338 seconds
Minimum number of seconds to run all queries: 1.338 seconds
Maximum number of seconds to run all queries: 1.338 seconds
Number of clients running queries: 100
Average number of queries per client: 20

Benchmark

Running for engine myisam
Average number of seconds to run all queries: 1.203 seconds
Minimum number of seconds to run all queries: 1.203 seconds
Maximum number of seconds to run all queries: 1.203 seconds
Number of clients running queries: 200
Average number of queries per client: 10

Benchmark

Running for engine innodb
Average number of seconds to run all queries: 0.134 seconds
Minimum number of seconds to run all queries: 0.134 seconds
Maximum number of seconds to run all queries: 0.134 seconds
Number of clients running queries: 100
Average number of queries per client: 20

Benchmark

Running for engine innodb
Average number of seconds to run all queries: 0.142 seconds
Minimum number of seconds to run all queries: 0.142 seconds
Maximum number of seconds to run all queries: 0.142 seconds
Number of clients running queries: 200
Average number of queries per client: 10

二、第三方压测工具sysbench

mysql

概述

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

- 阅读剩余部分 -

概述

相比市面上各种商业性的监控系统,开源软件其实更具灵活性,唯一的要求就是需要管理者加强学习,充分利用开源软件,能实现许多商业软件无法实现的功能,包括但不限于性能监控,资产管理,数据分析等。今天主要介绍zabbix的使用。

1、资产管理

主机名的命名规则一定要统一有序、并且多个管理平台统一,一致,常见的有:环境标识+用途+IP+ 序号。

2、性能监控

对于同一类型、配置的机器,采用相同的监控模板,统一变更。

3、数据分析

这部分后面再补充。

本文主要列举常用的监控脚本

备份监控

性能监控

业务监控

链路监控