zoukankan      html  css  js  c++  java
  • MYSQL性能优化-CPU/内存/磁盘

    选择合适的CPU

    本文来自:https://www.cnblogs.com/wangchaozhi/p/mysql_performance_stat.html

    多核CPU,并支持64位应用,可以使用更多的内存。

    配置MYSQL的IO线程与CPU核数一致。

    通过以下命令查看当前配置的配置,默认4

    #show variables like '%_io_threads';

    innodb_read_io_threads 4

    innodb_write_io_threads 4

    只能通过修改配置文件来修改以上的配置

    innodb_read_io_threads=16

    innodb_read_write_threads=16

    配置后需要重启MYSQL服务

    选择合适的内存

    超过4G内存则需要CPU支持64位应用。

    查看内存是否存在瓶颈:

    #show global status like '%innodb%read%';

    缓冲池命中率:

    Innodb_buffer_pool_read_requests/(Innodb_buffer_pool_read_requests+Innodb_buffer_pool_reads+Innodb_buffer_pool_read_ahead)

    如果大于99%则标识内存压力不大。

    选择合适的磁盘

    通过perf-tools-master/iosnoop查看磁盘的 延时

    通过以下命令查看系统IOPS:

    #fio -name iops -rw=randread -bs=4k -runtime=60 -iodepth 32 -filename /root -ioengine libaio -direct=1

    机械硬盘:寻道时间、转速影响“随机写入、读取数据”性能,可以通过RAID提升性能。

    固态硬盘:不需要寻到,因此读取效率高,数据不可更改,需要擦除。

    RAID0:多块合并一块,受限IO总线。

    RAID1:两组以上N个磁盘互为镜像(可靠性最高)。

    RAID5:硬盘分区技术,写入较慢(校验信息),读取与RAID0接近。

    innodb_io_capacity:参数定义了InnoDB后台任务每秒可用的I/O操作数(IOPS)

    innodb_io_capacity 配置建议,它是innodb_io_capacity_max的一半,默认innodb_io_capacity=100。同样,它对读无效对写有决定意义。

    在频繁写操作的时候才有意义(它不适用于读操作)。若你真的需要对它进行调整,最好的方法是要了解系统可以支持多大的 IOPS。譬如,假设服务器有一块 SSD 硬盘,我们可以设置 innodb_io_capacity_max=6000innodb_io_capacity=3000(最大值的一半)。运行 sysbench 或者任何其他基准工具来对磁盘吞吐量来进行基准测试是一个好方法。

    innodb_io_capacity 它会直接决定mysql的tps(吞吐性能),这边给出参考: sata/sas硬盘这个值在200 sas raid10: 2000 ssd硬盘:8000 fusion-io(闪存卡):25,000-50,000

  • 相关阅读:
    Kubernetes 1.5 配置dns
    详细图解,一眼就能看懂!卷帘快门(Rolling Shutter)与全局快门(Global Shutter)的区别
    把C#程序(含多个Dll)合并成一个Exe的超简单方法
    TortoiseSVN 合并操作简明教程
    简单说说.Net中的弱引用
    漫谈并发
    可靠UDP设计
    自动内存管理算法 —— 标记和复制法
    Unity防破解 —— 加密Dll与Key保护
    Unity防破解 —— 重新编译mono
  • 原文地址:https://www.cnblogs.com/wangchaozhi/p/mysql_performance_stat.html
Copyright © 2011-2022 走看看