服务器慢一般是什么原因

服务器慢一般是什么原因,第1张

服务器:是一个提供链接的平台。

链接互联网:首先要链接到服务商的服务器。

打开网站:是经过服务商的服务器转接到网站服务器。

服务器慢,最大的原因是:用户数据拥堵,带宽无法满足用户的要求,数据排队。

或:本身设备(电脑 手机)被占用了数据的传输,影响了速度。

一.查看占用网络资源高的程序

在网络卡顿时,使用【Ctrl+Alt+Del】组合键打开【任务管理器】,在【进程】中查看【网络】占用。

二,可以对当前无需占用网络资源的程序进行设置:

【WIN+Q】搜索并进入【控制面板】,【大图标】查看方式选择【Windows Defender防火墙】。

选择【高级设置】,在弹出的界面点击【出站规则】【新建规则】,按照【程序-此程序路径-阻止连接-全选何时应用该规则】顺序,根据提示完成相关设置并命名即可。这样,在有更重要的网络任务时,这些程序就会乖乖排队等候了。

三,Windows 10系统还可以设置在“非关键时间段”更新系统,以避免后台更新引起的网络和硬件资源的占用。

依次点击【开始】【设置】【更新和安全】。

选择【Windows更新】:

在【更新设置】选项下点击【更改使用时段】,设置想要避开系统更新的时间段,点击【保存】。

或者在【更新设置】选项下点击【高级选项】,【开启】暂停更新。

MySQL 在崩溃恢复时,会遍历打开所有 ibd 文件的 header page 验证数据字典的准确性,如果 MySQL 中包含了大量表,这个校验过程就会比较耗时。 MySQL 下崩溃恢复确实和表数量有关,表总数越大,崩溃恢复时间越长。另外磁盘 IOPS 也会影响崩溃恢复时间,像这里开发库的 HDD IOPS 较低,因此面对大量的表空间,校验速度就非常缓慢。另外一个发现,MySQL 8 下正常启用时居然也会进行表空间校验,而故障恢复时则会额外再进行一次表空间校验,等于校验了 2 遍。不过 MySQL 8.0 里多了一个特性,即表数量超过 5W 时,会启用多线程扫描,加快表空间校验过程。

如何跳过校验MySQL 5.7 下有方法可以跳过崩溃恢复时的表空间校验过程嘛?查阅了资料,方法主要有两种:

配置 innodb_force_recovery可以使 srv_force_recovery != 0  ,那么 validate  = false,即可以跳过表空间校验。实际测试的时候设置 innodb_force_recovery =1,也就是强制恢复跳过坏页,就可以跳过校验,然后重启就是正常启动了。通过这种临时方式可以避免崩溃恢复后非常耗时的表空间校验过程,快速启动 MySQL,个人目前暂时未发现有什么隐患。

2.   使用共享表空间替代独立表空间这样就不需要打开 N 个 ibd 文件了,只需要打开一个 ibdata 文件即可,大大节省了校验时间。自从听了姜老师讲过使用共享表空间替代独立表空间解决 drop 大表时性能抖动的原理后,感觉共享表空间在很多业务环境下,反而更有优势。

临时冒出另外一种解决想法,即用 GDB 调试崩溃恢复,通过临时修改 validate 变量值让 MySQL 跳过表空间验证过程,然后让 MySQL 正常关闭,重新启动就可以正常启动了。但是实际测试发现,如果以 debug 模式运行,确实可以临时修改 validate 变量,跳过表空间验证过程,但是 debug 模式下代码运行效率大打折扣,反而耗时更长。而以非 debug 模式运行,则无法修改 validate 变量,想法破灭。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/395551.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存