主机sql数据库占用磁盘IO读写过高,怎么解决?

主机sql数据库占用磁盘IO读写过高,怎么解决?,第1张

1、首先登录SQL Server实例,如下图所示

2、接着右键单击某个数据库,选择报表下面的标准报表,第一个就是了。

3、接下来在右侧就出现了磁盘的使用情况图示了,如下图所示。

4、可以点击磁盘空间的加号展示列表数据,如下图所示。

5、另外顶部有刷新按钮可以刷新最新的数据。

6、最后还可以通过打印按钮将数据打印出来,如下图所示。

现象是,系统里的java连接mysql超时了,

于是去mysql的机器,查看/var/log/messages日志,查对应的时间点的情况

发现mysql被阻塞了blocked for more than 120 seconds,mysql的io非常之高,用top查看系统的负载也到达了50的样子

用mpstat查看cpu情况

好明显,都在等io

用iostat查看io情况,%util的值,一直在80%,99%之间变化

以为磁盘有问题,用dd测下速看看

从上面的结果看,也还好,没问题

以为可能磁盘有坏道,用下面命令也扫了一遍,没问题

结果也没有坏的块,这个过程,很耗时。

用show processlist命令查看mysql正在忙着什么,一看,也没什么任务在执行的

想看看mysql,研究写哪个文件时,最耗时的

从上面结果来看,xxl_job是最耗时的。知道点眉目了,因为公司的定时任务是用的xxljob,定时任务里,有每几秒执行的任务,我猜它的日志记录一定很大,于是查看一下

我的天,这个表的记录有千万!!!这些记录,没做定时任务来清理,由于都是一些没用的记录,所以这个表的数据我全清了

清了之后,再用iostat查看

%util一下子就降下来了,用iotop查看mysql进程的io也下降了

cpu的iowait也下降了

定义一个事件,让mysql定时清理30天前的日志记录

记录一下,希望对有需要的朋友也起一点提示

高IO型实例:适用于对磁盘读写和时延要求高的 I/O 密集型应用场景,如云数据库 MongoDB、群集化数据库等。    

选择合适的配置很重要,配置低了带不动业务会造成客户损失,配置选得太高服务器贵造成性能浪费,对自身需求清晰、选择适合自己的配置才是最优解。

入门配置:适用于起步阶段的个人网站。如:个人博客等小型网站。

基础配置:适合有一定访问量的网站或应用。如:较大型企业官网、小型电商网站。

普及配置:适合常使用云计算等一定计算量的需求。如:门户网站、SaaS 软件、小型 App。

专业配置:适用于并发要求较高的应用及适合对云服务器网络及计算性能有一定要求的应用场景。如:大型门户、电商网站、游戏 App。

个人网站之类的需求 1核1G – 1核2G 这个范围就够用了,企业级还需按场景细分服务器实例类型。

具体场景实例类型选择:

需求场景很多,每个业务的侧重点不一样,所以云服务器也衍生出很多变型。目前市场上各个厂商的实例类型多种多样,叫法可能不一样,但都大同小异。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9992512.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存