不同容量硬盘创建raid 10阵列案例解析

情景:
在DELL 5/i或6/i阵列卡中,有2块146G盘(插槽号0 ~ 1),4块300G盘(插槽号2~5),共6块。
现在想要创建raid 10阵列,那么最后阵列总容量是多大呢?

解析:
按照常规理解,这种模式下,应该是以最小硬盘的容量为准,既146*3 = 438G的容量。
但实际上,却并非如此,而是:146+300*2 = 746的容量,这是为什么呢?

其实产生这个结果是个凑巧,因为此时的阵列是这样做的:

0 ó(镜像) 1 => 条带1
2 ó(镜像) 3 => 条带2
4 ó(镜像) 5 => 条带3

InnoDB引擎数据表压缩特性测试

一、前言
Innodb Plugin引擎开始引入多种格式的行存储机制,目前支持:Antelope、Barracuda两种。其中Barracuda兼容Antelope格式。
另外,Innodb plugin还支持行数据压缩特性,不过前提是采用Barracuda行存储格式。
表空间启用压缩的前提是innodb表空间文件存储格式修改成:Barracuda,需要修改2个选项:
innodb_file_format = "Barracuda"
innodb_file_format_max = "Barracuda"

下面是对比测试结果
二、表空间压缩比
1. 某项目数据表压缩比
2.1 数据表tabA
压缩之前
-rw-rw---- 1 mysql mysql 19038208 Mar 21 13:59 tabA.ibd(18.1G)
压缩之后
-rw-rw---- 1 mysql mysql 9.2G Mar 21 19:11 tabA.ibd
相差:12414976 ~= 12124 MB ~= 11.83 Gb,节约49.32%

TPCC-MySQL使用手册

一、 下载工具包
Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar(Bazaar是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical 公司(Ubuntu母公司)赞助)上,因此还需要先安装bazaar客户端。

使用root安装rpm包

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

然后就可以开始安装bzr客户端了:

yum install bzr 

之后,就可以开始用bzr客户端下载tpcc-mysql源码了。

cd tmp
bzr branch lp:~percona-dev/perconatools/tpcc-mysql

二、编译安装
编译非常简单

cd /tmp/tpcc-mysql/src
make

然后就会在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start

DELL 32位诊断工具PEDIAGS使用

DELL PowerEdge Diagnostics 是一款简单实用、基于操作系统的硬件诊断工具!通过它,您可以很清楚的了解DELL系统的硬件健康状况,更有效的判断和定位硬件问题。
该工具是一款安全、免费的软件,您可以从DELL公司的网站上下载它。
1. 下载安装
下载无需多说,目前主要使用dell-pediags-linux-2.8.0.398-A01.tar.gz 版本,直接解压缩,然后执行安装脚本:bash install.sh

2. 使用
由于服务器大多没有启动 X window,因此我们使用字符界面的方式

./pediags --show all 列出可供检测的设备

[MySQL FAQ]系列-关于设置innodb buffer pool size

按照惯例,如果前端应用程序采用长连接的话,那么innodb buffer pool最高可设置为物理内存大小的80%。
不过部分在线DB由于并发连接数较高,每个线程分配的内存较多,或由于业务上升,并发事务数突然较大幅度提升,加上innodb buffer pool较大,导致了严重的内存交换(swap)发生。

鉴于此,我们建议在这些活跃度较高/并发连接数较高的在线DB服务器上,适当调低innodb buffer pool的大小(例如先调低为60%),
同时也适当调低各线程级别的内存参数,例如:tmp_table_size, sort_buffer_size等,避免因为内存交换而影响服务器性能。尤其是 tmp_table_size,不少人以为是全局变量,设置的非常大,甚至见过一个设置为 1GB 的,太吓人了。

如果绝大多数引擎是InnoDB的话,建议调低key_buffer_size到很小的值,同时可以关闭query cache,现在它基本是个鸡肋了,有些时候甚至还会导致性能受到影响。

[MySQL优化案例]系列 -- 经典游戏数据表拆分优化案例

1. 目的
通过对比测试,分析某数据表tabC拆分方案前后性能对比,确定拆分方案的可行性。

2. 方法
对拆分方案前后两种类型进行对比测试。
同时,每次测试中采用两种更新方式:
1. 和原来类似,对数据表所有字段的更新分多次
2. 对数据表所有字段的更新一次性完成

3. 环境
本次测试采用线上实际数据导入。tabC表共有132万行记录,全表共100G。
将所有字段重新组合,确保每个分表的实际行长度不高于8KB,拆分成3个子表,大小分别是:
tabC_1.ibd 796M
tabC_2.ibd 10.2G
tabC_3.ibd 8.4G

之后再进行全表随机更新,每轮测试都在脚本中并发调用存储过程来完成,最大10个并发进程。
每次测试之前都重启mysqld,且无其他额外压力,确保环境公平。

4. 结果

[MySQL FAQ]系列-关于连接MySQL报错lost connection 和 gone away

一般频繁出现的话,才需要关注,一天出现几次属于正常情况。
频繁出现的原因一般有:
1. 网络,包括网络质量,服务器网卡驱动,程序连接数据库方式:ODBC/API,都是有区别的;这里的网络问题,可能出现在客户端,也可能出现在服务端
2. 如果使用ODBC的话,还需要注意部分ODBC版本可能存在bug,导致有问题
3. 服务端自身问题,例如mysqld不稳定,连接数超限,或者连接超时,或者由于dns反解析的问题导致连接异常
4. 其他问题,自己发挥吧 O(∩_∩)O哈哈~

[MySQL FAQ]系列-net_buffer_length选项对数据备份及恢复影响

有一次和朋友讨论到 net-buffer-length 可能对mysqldump导出及恢复有影响,对此测试了一下,发现影响很小,基本可以忽略不计,下面是对比测试结果。

说明:执行mysqldump时,net buffer length的最大上限是16Mb,默认值是1Mb,下面是测试结果贴图:

从上面的对比结果可以看出来,该选项的调整对导出所需时间影响不大,仅对导出文件有一定影响,但也很小;同样地,对数据恢复的影响也很小。

同样磁盘数,不同raid级别的随机IO性能差异对比

测试结果曲线图:

小结:
1. 如果应用以随机IO为主的话,应使用raid 1+0,在相同硬盘数量情况下,其性能约是raid 5的1.4(+)倍
2. 随机IO越大,raid 5的性能下降越厉害,在本次测试中,有好几次较大IO时,测试进程无响应

附:
Sysbench测试io方法:

【分享】- 关注硬盘预警信息

有一次在做MySQL数据库更新时,发现DML更新效率特别低,总能发现超过1秒的慢日志,一般很少会出现这种情况,初步判定为可能网络故障或者就是DB服务器自身的性能出现问题导致。

经过检查服务器状况,发现确实发生了硬件故障,主要是raid 10中的一块硬盘发生预警,信息如下:

页面

Subscribe to iMySQL | 老叶茶馆 - Oracle MySQL ACE Director,专注MySQL RSS