【问题标题】:Sysbench test Mysql but no disk readSysbench测试Mysql但没有磁盘读取
【发布时间】:2020-12-02 19:39:56
【问题描述】:

当我使用sysbench测试mysql时,我使用iotop监控io,我发现只有DiSH WRITE速度,DISK READ速度总是0。然后我使用free -h,我发现那个缓冲区/缓存增加,是不是说sysbench的测试数据不是写到磁盘而是写到缓冲区,没有自动更新到磁盘?

非常感谢!

【问题讨论】:

    标签: mysql buffer sysbench


    【解决方案1】:

    mysql 在哪里运行??我不知道 iotop 及其测量值,但即使是微小的 sysbench 运行也会产生巨大的 IO。这可能是用户问题,也许 mysql 在不同的用户下生成 io 并且没有被拾取。

    # you can isolate the db into a container and run sysbench against this to see
    # if/when/how much IO there is.
    
    docker run --rm -it --name mdb105 --network host -e MYSQL_ALLOW_EMPTY_PASSWORD=on mariadb:10.5 --port=10306
    
    # in another terminal run
    docker stats
    
    # now run sysbench, and you will see enormous IO
    
    # you can get another shell in container named mdb105 by:
    docker exec -it --user root mdb105 bash
    
    # mariadb:10.5 is based on ubuntu:20.04
    # you could maybe run iotop inside the container
    
    

    更新:我能够使用树莓派复制类似您的零 IO 情况。确实 docker stats 显示没有 IO,而显然数据正在保存到磁盘。我最初的反应是,也许一些内核/发行版缺少某些设施,但它看起来不是内核/发行版,因为我在玩磁盘/fs 即外部 USB 磁盘时看到了 IO ...我认为这更多与不支持此类统计信息的 micro sd 卡及其控制器/驱动程序。而且由于您的 tps 非常低,我怀疑您也在使用类似于 micro sd 的东西。

    这可能不会在 ec2 实例中发生。

    【讨论】:

    • mysql在docker中运行,这是sysbench logout的一部分[ 5s ] thds: 10 tps: 62.93 qps: 1296.52 (r/w/o: 908.96/259.70/127.85) lat (ms,95%): 411.96 err/s: 0.00 reconn/s: 0.00,表示mysql有读写操作,但是当我使用docker stats监控mysql时,观察到BLOCK I/O 中的 READ 未增加。
    • 数字有点低。每秒 10 tps 和 62 次查询?我希望即使是单核机器也能获得更多的 tps 和 qps。如果你让它运行几分钟,你应该会在 docker stats 中看到 IO。你是如何准备数据库的?还是您甚至运行了 sysbench prep 命令?发布您的 sysbench 命令。当你运行临时容器时,你还有在主机上运行 mysql 吗?如果是这样,它可能会再次静默连接到主机,可能是通过 unix 域套接字
    • 在帖子中添加了更多信息。
    • 感谢您的帮助。我的 TPS 是 62.93; 10 是线程。 Mysql 在 docker 中运行,主机上没有 mysql。 sysbench 准备命令是sysbench oltp_read_write.lua --tables=10 --table_size=300000 --threads=10 --rand-type=uniform --db-driver=mysql --mysql-db=sysbench --mysql-user=root --mysql-password=123456 --mysql-host=192.168.1.206 --mysql-port=3306 prepare,类似于运行命令。困扰我的是 Mysql 将大量数据写入磁盘但几乎没有从磁盘读取。
    • 这是来自/sys/fs/cgroup/blkio/docker/mysql/blkio.io_service_bytes的一些信息:8:0 Read 8560648:0 Write 19047710728:0 Sync 19056271368:0 Async 08:0 Total 1905627136Total 1905627136 如你所见,写比读大得多...
    猜你喜欢
    • 2019-07-10
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 2013-02-22
    • 2010-10-18
    • 1970-01-01
    相关资源
    最近更新 更多