searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Linux系统架构与MySQL性能:x86 vs ARM的页大小及配置影响

2024-08-30 09:39:20
29
0

测试环境与方法

  • 测试操作​:使用存储过程data向表t1中插入数据,其中每条记录包含两列ab,每列填充指定大小的文本数据。

  • 测试脚本​:
    sql

    CREATE PROCEDURE data(IN base INT, IN count INT)
    BEGIN
        DECLARE i INT DEFAULT 1;
    
        CREATE TABLE IF NOT EXISTS t1 (id INT AUTO_INCREMENT PRIMARY KEY, a LONGTEXT, b LONGTEXT);
        WHILE i <= count DO
            INSERT INTO testrm.t1 (a,b)VALUES(REPEAT('a', base/2*1048576), REPEAT('b', base/2*1048576));
            SET i = i + 1;
        END WHILE;
    END$
    

系统页大小与MySQL配置参数的影响

下表展示了在x86和ARM架构下,不同的系统页大小和MySQL配置参数对写入速度的影响。测试通过调用data(100,6),即插入5MB数据六次,来衡量写入速度。

操作系统 系统页大小 MySQL参数innodb_page_size MySQL参数innodb_read_io_threadsinnodb_write_io_threads 写入速度衡量call data(100,6)
x86 4k 16k 4 164s
x86 4k 16k 16 97s~120s
x86 4k 64k 4 109s
x86 4k 64k 16 98s~104s
arm 64k 16k 4 600s+
arm 64k 16k 16 460s
arm 64k 64k 4 170s~330s
arm 64k 64k 16 59s~120s

结论与分析

x86架构(4k页大小)

在x86架构下,系统页大小固定为4k。测试结果显示,当innodb_page_size设置为16k时,增加innodb_write_io_threads数量至16线程,写入速度从164秒降低到了97秒至120秒之间,表明I/O线程的优化对写入性能有显著提升。进一步将innodb_page_size增加到64k时,虽然I/O线程数量保持不变,但写入速度并未出现明显改善,这说明在4k页大小的x86架构下,innodb_page_size增加到4k以上对MySQL写入性能的提升作用有限。

ARM架构(64k页大小)

ARM架构的系统页大小为64k,相较于x86的4k页大小,基础写入速度明显较慢。然而,通过优化innodb_write_io_threads参数,即使在较大的页大小下,也能显著提升写入速度。例如,当innodb_page_size设置为16k时,增加I/O线程数量至16,写入速度从600秒以上降低到了460秒左右;而当innodb_page_size设置为64k时,同样的I/O线程优化策略,写入速度从170秒至330秒降低到了59秒至120秒之间,这表明在ARM架构下,通过合理配置I/O线程数量,可以有效克服较大页大小带来的性能劣势。

总结

  • x86架构​:在4k页大小下,增加innodb_write_io_threads数量对写入速度有显著提升效果,而增大innodb_page_size至64k对性能影响不大。
  • ARM架构​:64k页大小导致基础写入速度较慢,但通过优化innodb_write_io_threadsinnodb_page_size参数,可以显著提升写入速度,甚至接近x86架构的表现。

因此,在实际应用中,根据硬件架构的特点,合理调整MySQL的配置参数,尤其是I/O线程数量,对于提升数据库写入速度和整体性能至关重要。同时,对于ARM架构,考虑到其较大的系统页大小,更应注重I/O线程的优化以弥补性能差距。

0条评论
0 / 1000
meng321
5文章数
0粉丝数
meng321
5 文章 | 0 粉丝
原创

Linux系统架构与MySQL性能:x86 vs ARM的页大小及配置影响

2024-08-30 09:39:20
29
0

测试环境与方法

  • 测试操作​:使用存储过程data向表t1中插入数据,其中每条记录包含两列ab,每列填充指定大小的文本数据。

  • 测试脚本​:
    sql

    CREATE PROCEDURE data(IN base INT, IN count INT)
    BEGIN
        DECLARE i INT DEFAULT 1;
    
        CREATE TABLE IF NOT EXISTS t1 (id INT AUTO_INCREMENT PRIMARY KEY, a LONGTEXT, b LONGTEXT);
        WHILE i <= count DO
            INSERT INTO testrm.t1 (a,b)VALUES(REPEAT('a', base/2*1048576), REPEAT('b', base/2*1048576));
            SET i = i + 1;
        END WHILE;
    END$
    

系统页大小与MySQL配置参数的影响

下表展示了在x86和ARM架构下,不同的系统页大小和MySQL配置参数对写入速度的影响。测试通过调用data(100,6),即插入5MB数据六次,来衡量写入速度。

操作系统 系统页大小 MySQL参数innodb_page_size MySQL参数innodb_read_io_threadsinnodb_write_io_threads 写入速度衡量call data(100,6)
x86 4k 16k 4 164s
x86 4k 16k 16 97s~120s
x86 4k 64k 4 109s
x86 4k 64k 16 98s~104s
arm 64k 16k 4 600s+
arm 64k 16k 16 460s
arm 64k 64k 4 170s~330s
arm 64k 64k 16 59s~120s

结论与分析

x86架构(4k页大小)

在x86架构下,系统页大小固定为4k。测试结果显示,当innodb_page_size设置为16k时,增加innodb_write_io_threads数量至16线程,写入速度从164秒降低到了97秒至120秒之间,表明I/O线程的优化对写入性能有显著提升。进一步将innodb_page_size增加到64k时,虽然I/O线程数量保持不变,但写入速度并未出现明显改善,这说明在4k页大小的x86架构下,innodb_page_size增加到4k以上对MySQL写入性能的提升作用有限。

ARM架构(64k页大小)

ARM架构的系统页大小为64k,相较于x86的4k页大小,基础写入速度明显较慢。然而,通过优化innodb_write_io_threads参数,即使在较大的页大小下,也能显著提升写入速度。例如,当innodb_page_size设置为16k时,增加I/O线程数量至16,写入速度从600秒以上降低到了460秒左右;而当innodb_page_size设置为64k时,同样的I/O线程优化策略,写入速度从170秒至330秒降低到了59秒至120秒之间,这表明在ARM架构下,通过合理配置I/O线程数量,可以有效克服较大页大小带来的性能劣势。

总结

  • x86架构​:在4k页大小下,增加innodb_write_io_threads数量对写入速度有显著提升效果,而增大innodb_page_size至64k对性能影响不大。
  • ARM架构​:64k页大小导致基础写入速度较慢,但通过优化innodb_write_io_threadsinnodb_page_size参数,可以显著提升写入速度,甚至接近x86架构的表现。

因此,在实际应用中,根据硬件架构的特点,合理调整MySQL的配置参数,尤其是I/O线程数量,对于提升数据库写入速度和整体性能至关重要。同时,对于ARM架构,考虑到其较大的系统页大小,更应注重I/O线程的优化以弥补性能差距。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
1
1