mysql 5.7 在 ubuntu 18.04 LTS 上运行缓慢

mysql 5.7 在 ubuntu 18.04 LTS 上运行缓慢

我目前正在使用 ubuntu 18.04 服务器(配备 8GB RAM、100 GB HDD 和 Intel I3 处理器)进行项目部署,并且正在使用 mysql 5.7 数据库服务器,但每当我尝试在数据库中插入数据时,与具有相同配置的 Ubuntu 16.04 相比,插入速度太慢了。

  • Ubuntu 16.04 -> Mysql 5.7.24 -> 插入数据率(250k-350k /分钟)
  • Ubuntu 18.04 -> Mysql 5.7.24 -> 插入数据率(10k-15k /分钟)

当我在将数据插入mysql时检查系统的性能时,我发现

  • Ubuntu 16.04 -> CPU 利用率 60-70%
  • Ubuntu 18.04 -> CPU 利用率 7-8%

Ubuntu 18.04 限制 mysql 应用程序使用最大 CPU,请告诉我上述解决方案。

答案1

在实施 ubuntu 18.04 时,Ubuntu 在 CPU 使用率方面取得了显着改善。Ubuntu 大大改善并降低了 CPU 使用率。他们还修复了数百个错误并进行了数百项其他小改进。

只是因为 MySQL 花费了太多时间来执行其操作,这个问题已经通过以下 MySQL 参数得到解决,这些参数强制 MYSQL 利用更多的 CPU 线程来执行操作。

刚刚解决了。通过将以下行添加到mysqld.cnf解决了问题:


innodb_read_io_threads=4 
innodb_write_io_threads=8 #To stress the double write buffer 
innodb_buffer_pool_size=20G # 70-80% available Memory 
innodb_buffer_pool_load_at_startup=ON 
innodb_log_file_size = 32M #Small log files, more page flush 
innodb_log_files_in_group=2 
innodb_file_per_table=1 
innodb_log_buffer_size=8M 
innodb_flush_method=O_DIRECT 
innodb_flush_log_at_trx_commit=0 
skip-innodb_doublewrite #commented or not depending on test

答案2

Linux 磁盘 I/O 电梯算法是罪魁祸首。

$ cat /sys/block/{device-name}/queue/scheduler
noop deadline [cfq]

将 io 模式改为deadline,如果使用 ssd,应该使用noop

echo deadline > /sys/block/{device-name}/queue/scheduler

将电梯算法的选择附加到此内核启动命令条目。更改后的 Linux 内核启动命令将如下所示:

linux /vmlinuz-4.4.0-31-generic root=/dev/mapper/ashish--devbox--vg-root ro elevator=deadline

相关内容