Submitted by yejr on 周五, 2012/09/21 - 17:02
前言:MySQL发展到今天,InnoDB引擎已经作为绝对的主力,除了像大数据量分析等比较特殊领域需求外,它适用于众多场景。然而,仍有不少开发者还在“执迷不悟”的使用MyISAM引擎,觉得对InnoDB无法把握好,还是MyISAM简单省事,还能支持快速COUNT(*)。本文是由于最近几天帮忙处理discuz论坛有感而发,希望能对广大开发者有帮助。
1. 快速认识InnoDB
InnoDB是MySQL下使用最广泛的引擎,它是基于MySQL的高可扩展性和高性能存储引擎,从5.5版本开始,它已经成为了默认引擎。
InnODB引擎支持众多特性:
a) 支持ACID,简单地说就是支持事务完整性、一致性;
b) 支持行锁,以及类似ORACLE的一致性读,多用户并发;
c) 独有的聚集索引主键设计方式,可大幅提升并发读写性能;
d) 支持外键;
e) 支持崩溃数据自修复;
InnoDB有这么多特性,比MyISAM来的优秀多了,还犹豫什么,果断的切换到InnoDB引擎吧 :)
2. 修改InnoDB配置选项
可以选择官方版本,或者Percona的分支,如果不知道在哪下载,就google吧。
安装完MySQL后,需要适当修改下my.cnf配置文件,针对InnoDB相关的选项做一些调整,才能较好的运行InnoDB。
相关的选项有:
Submitted by yejr on 周二, 2012/09/11 - 08:26
Submitted by yejr on 周一, 2012/09/10 - 11:44
在各种测试组合方案中,组合10(组合10:SSD * 2, RAID 0, XFS,WB,nobarrier,noop)的综合性能最高,因此以它为基准,其他方案与其对比,下表是各组合和组合10的对比:
相应的对比线形图:
测试环境:
Submitted by yejr on 周日, 2012/08/12 - 10:55
情景:
在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
Submitted by yejr on 周六, 2012/08/04 - 11:23
一、 下载工具包
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
Submitted by yejr on 周一, 2012/07/23 - 15:43
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 列出可供检测的设备
Submitted by yejr on 周六, 2012/06/16 - 10:36
测试结果曲线图:
小结:
1. 如果应用以随机IO为主的话,应使用raid 1+0,在相同硬盘数量情况下,其性能约是raid 5的1.4(+)倍
2. 随机IO越大,raid 5的性能下降越厉害,在本次测试中,有好几次较大IO时,测试进程无响应
附:
Sysbench测试io方法:
Submitted by yejr on 周二, 2012/05/01 - 15:42
有一次在做MySQL数据库更新时,发现DML更新效率特别低,总能发现超过1秒的慢日志,一般很少会出现这种情况,初步判定为可能网络故障或者就是DB服务器自身的性能出现问题导致。
经过检查服务器状况,发现确实发生了硬件故障,主要是raid 10中的一块硬盘发生预警,信息如下:
Submitted by yejr on 周二, 2012/04/10 - 11:42
近期碰到个问题,服务器上线后,crontab都发生异常没有自动执行,查看了下日志,发现问题:
Apr 16 11:26:01 imysql.cn crond[28354]: (*system*) BAD FILE MODE (/etc/cron.d/flushhost)
Apr 16 11:26:01 imysql.cn crond[28354]: (root) BAD FILE MODE (cron/root)
检查了下 /etc/cron.d/ 目录下的其他文件,发现 flushhost 的属性是 755,其他的则是 644,于是将这个脚本属性也改成644,问题解决。
另外,还同时修改了mysql安装包的install.sh脚本,新服安装完毕后,修改flushhost脚本的属性为644。
这个问题貌似只在个别版本的RHEL下碰到过,并不是所有的版本都有。
页面
最近评论