实测Raid5 VS Raid1+0下的innodb性能
声明:本文拒绝任何形式的转载,如有违者,将保留追究权利!
1、说明
硬件:
Raid 5: DELL 2950, 8G RAM, 3块SEAGATE SAS 140G 盘构成
Raid 1+0: DELL 2950, 8G RAM, 4块SEAGATE SAS 140G 盘构成
Raid 5: DELL 2950, 8G RAM, 3块SEAGATE SAS 140G 盘构成
Raid 1+0: DELL 2950, 8G RAM, 4块SEAGATE SAS 140G 盘构成
软件:
Red Hat Enterprise Linux AS release 4 (Nahant Update 6)
Linux imysql.cn 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:58:43 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
mysql 5.0.45
sysbench-0.4.8
Linux imysql.cn 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:58:43 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
mysql 5.0.45
sysbench-0.4.8
innodb主要相关参数:
innodb_buffer_pool_size = 6G
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_file_per_table
测试方法:
sysbench --test=oltp --oltp-test-mode=complex --mysql-engine-trx=yes \
--mysql-table-engine=innodb --mysql-db=test --oltp-table-name=xxx \
--oltp-table-size=xxx --num-threads=8
2、测试结果
表记录数
|
prepare
|
transaction/s
|
r/w request/s
|
other/s
|
total time
|
100w
|
15.876s
|
2554.77
|
48540.71
|
5109.55
|
3.9142s
|
15.467s
|
2578.27
|
48987.1
|
5156.54
|
3.8786s
|
|
|
|||||
500w
|
1m27.716s
|
2179.69
|
41414.13
|
4359.38
|
4.5878s
|
1m24.817s
|
2165.17
|
41138.26
|
4330.34
|
4.6186s
|
|
1000w
|
3m0.816s
|
802.24
|
15242.62
|
1604.49
|
12.4650s
|
2m54.242s
|
1413.52
|
26856.94
|
2827.05
|
7.0745s
|
|
5000w
|
16m2.075s
|
297.1
|
5644.82
|
594.19
|
33.6592s
|
15m29.652s
|
336.98
|
6402.54
|
673.95
|
29.6757s
|
|
1
亿
|
32m45.385s
|
101.87
|
1935.56
|
203.74
|
98.1628s
|
31m35.462s
|
123.7
|
2350.31
|
247.4
|
80.8405s
|
|
raid 5
|
|||||
raid 1+0
|
小结:其实3块盘的raid5和4块盘的raid1+0的容量是一样的,想要得到更好的性能,那么就多花一块盘的前吧 :) 不过,话说回来,raid1+0最多允许同时坏2块,raid5只能一块,因此还需要增加一块热备盘,所以这么算的话,成本还是一样的。
声明:本文拒绝任何形式的转载,如有违者,将保留追究权利!
1、说明
硬件:
Raid 5: DELL 2950, 8G RAM, 3块SEAGATE SAS 140G 盘构成
Raid 1+0: DELL 2950, 8G RAM, 4块SEAGATE SAS 140G 盘构成
Raid 5: DELL 2950, 8G RAM, 3块SEAGATE SAS 140G 盘构成
Raid 1+0: DELL 2950, 8G RAM, 4块SEAGATE SAS 140G 盘构成
软件:
Red Hat Enterprise Linux AS release 4 (Nahant Update 6)
Linux imysql.cn 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:58:43 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
mysql 5.0.45
sysbench-0.4.8
Linux imysql.cn 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:58:43 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
mysql 5.0.45
sysbench-0.4.8
innodb主要相关参数:
innodb_buffer_pool_size = 6G
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_file_per_table
测试方法:
sysbench --test=oltp --oltp-test-mode=complex --mysql-engine-trx=yes \
--mysql-table-engine=innodb --mysql-db=test --oltp-table-name=xxx \
--oltp-table-size=xxx --num-threads=8
2、测试结果
表记录数
|
prepare
|
transaction/s
|
r/w request/s
|
other/s
|
total time
|
100w
|
15.876s
|
2554.77
|
48540.71
|
5109.55
|
3.9142s
|
15.467s
|
2578.27
|
48987.1
|
5156.54
|
3.8786s
|
|
|
|||||
500w
|
1m27.716s
|
2179.69
|
41414.13
|
4359.38
|
4.5878s
|
1m24.817s
|
2165.17
|
41138.26
|
4330.34
|
4.6186s
|
|
1000w
|
3m0.816s
|
802.24
|
15242.62
|
1604.49
|
12.4650s
|
2m54.242s
|
1413.52
|
26856.94
|
2827.05
|
7.0745s
|
|
5000w
|
16m2.075s
|
297.1
|
5644.82
|
594.19
|
33.6592s
|
15m29.652s
|
336.98
|
6402.54
|
673.95
|
29.6757s
|
|
1
亿
|
32m45.385s
|
101.87
|
1935.56
|
203.74
|
98.1628s
|
31m35.462s
|
123.7
|
2350.31
|
247.4
|
80.8405s
|
|
raid 5
|
|||||
raid 1+0
|
小结:其实3块盘的raid5和4块盘的raid1+0的容量是一样的,想要得到更好的性能,那么就多花一块盘的前吧 :) 不过,话说回来,raid1+0最多允许同时坏2块,raid5只能一块,因此还需要增加一块热备盘,所以这么算的话,成本还是一样的。
本文出自 “MySQL中文网”博客
http://www.imysql.cn/
本文出自 “老叶茶馆” 博客,转载请与作者联系!
转载于:https://my.oschina.net/yejr/blog/878595
相关推荐
### MySQL与InnoDB性能分析 #### MySQL架构概览 MySQL是一种关系型数据库管理系统,由瑞典MySQL AB公司开发,目前由Oracle公司维护。MySQL的核心组成部分包括服务器端、存储引擎以及一系列支持服务。 - **服务器...
行级锁定极大地减少了锁定的数据范围,从而提高了多用户环境下的并发性能。然而,由于这些额外的功能,InnoDB在内存使用和磁盘I/O上可能比MyISAM更消耗资源。 在性能对比上,MyISAM通常在读取速度上有优势,因为它...
- **调整`innodb_flush_log_at_trx_commit`**:设置为0表示每秒刷新日志,牺牲部分事务安全性以提高性能,但请注意这可能导致数据丢失。 4. **日志文件和日志缓冲大小**: - 使用较大的日志文件(与缓冲池大小...
5. **innodb_file_io_threads**:该参数定义了InnoDB用于文件I/O的线程数。在非Windows系统上,建议设置为4,以平衡并发性能和资源消耗。 6. **innodb_flush_log_at_trx_commit**:这个参数决定事务日志何时被刷入...
- **innodb_flush_log_at_trx_commit**:控制日志写入磁盘的策略,对于实时业务交易,一般配置为2,既保证了事务的一致性又减少了性能损耗,而设置为0或2时在系统崩溃时可能会有数据丢失的风险。 - **innodb_read_...
默认情况下,innodb的参数设置的非常小,在生产环境中远远不够用
《MySQL内核:InnoDB存储引擎 卷1》是一本深度探讨MySQL数据库系统核心部分——InnoDB存储引擎的专业书籍。这本书以超高清的PDF格式呈现,包含详细的书签,便于读者快速定位和查阅相关内容。InnoDB作为MySQL中最常用...
- 在数据量庞大的表上,应避免使用`SELECT COUNT(*)`,特别是在没有索引的情况下,这可能导致性能大幅下降。 - 对于需要频繁统计的数据表,考虑创建一个额外的汇总表或使用缓存机制来存储统计数据,减少直接查询表的...
MySQL数据库系统在当今数据存储领域占据着重要的地位,尤其在InnoDB存储引擎的支持下,它提供了事务处理、行级锁定以及外键约束等功能,使得MySQL能够满足复杂的业务需求。InnoDB是MySQL中最常用的存储引擎,其性能...
标题《Innodb和XtraDB结构和性能优化》涉及的是数据库技术领域,特别是关于MySQL数据库中的存储引擎Innodb与XtraDB的内部结构和性能调优方法。Innodb是MySQL最流行的存储引擎之一,以支持事务处理和行级锁定著称。...
MySQL 8.0 InnoDB 新特性 MySQL 8.0 是 Oracle 公司发布的最新版本的关系型数据库管理系统,自 2016 年以来,MySQL 8.0 已经引入了许多新的特性和改进,其中 InnoDB 存储引擎是 MySQL 的默认存储引擎之一。在 MySQL...
《MySQL内核:InnoDB存储引擎 卷1》由资深MySQL专家,机工畅销图书作者亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的...
此外,InnoDB还采用了MVCC(多版本并发控制)来提高并发性能,确保在并发环境下数据的一致性。 三、行级锁定 InnoDB支持行级锁定,这意味着在并发操作中,只锁定实际操作的数据行,而非整个表,从而提高了并发性能...
5. `innodb_read_io_threads` 和 `innodb_write_io_threads` 分别设为 16,以优化 I/O 并发。 6. `innodb_io_capacity` 设为 2000,表示磁盘的理论 I/O 能力。 7. `innodb_log_files_in_group`、`innodb_flush_log_...
### MySQL Innodb 索引原理详解 #### 1. 各种树形结构 在深入探讨MySQL Innodb索引之前,我们先了解几种基本的树形数据结构,包括二叉搜索树、B树、B+树以及B*树。 ##### 1.1 搜索二叉树(Binary Search Tree) ...
5. **InnoDB日志文件问题**:InnoDB使用重做日志文件(`ib_logfile0`和`ib_logfile1`)进行事务持久化。如果这些文件损坏或无法访问,也可能导致启动失败。检查日志文件的状态。 6. **数据文件损坏**:`ibdata1`...
2. **行级锁定**:相比于MyISAM引擎的表级锁定机制,InnoDB采用更细粒度的行级锁定方式,在高并发场景下能更好地提升性能。但是需要注意的是,如果查询操作未通过索引,则可能会退化为表级锁定。 3. **读写阻塞**...
- **应用场景**:在系统内存资源充足且InnoDB需要处理复杂查询的情况下,适当增加此参数值可以提升性能。 #### 三、优化实践 - **监控性能**:定期使用`SHOW ENGINE INNODB STATUS;`命令检查InnoDB状态,以便及时...