如何查看服务器的带宽?
第一种方案:
简单粗暴的一个方法,而且很直观。
就是在服务器上传大文件做下载测试,上传的时候可以估算到上传速度,下载的时候可以看到下载速度。
比如20M宽带 下载速度大概2M/s左右。
100M下载速度11M/s左右。
另外一个方法就是在服务器上使用。
第二种方案:
通过直接下载SpeedTest脚本,只需要简单的3步命令即可。
第一行为下载Speedtest工具
第二行命令为给speedtest权限
第三行命令为正在开始测速测试,并把结果输出为。
[root@bogon ~]#wget -O speedtest-cli https://rawgithubusercontentcom/sivel/speedtest-cli/master/speedtestpy
[root@bogon ~]#chmod +x speedtest-cli
[root@bogon ~]#/speedtest-cli --share
上图可以看到测试结束。
Download:731Mbit/s 表示下载速度
Upload:096 Mbit/s 表示上传速度
也可通过点击最后一行的链接,直观显示测试结果
1、确定高负载的类型 htop,dstat命令看负载高是CPU还是IO
看具体是哪个用户哪个进程占用了相关系统资源,当前CPU、内存谁在使用
2、监控具体的sql语句,是insert update 还是 delete导致高负载
抓取mysql包分析,一般抓3306端口的数据 看出最繁忙的sql语句了
3、检查mysql日志
分析mysql慢日志,查看哪些sql语句最耗时
检查mysql配置参数是否有问题,引起大量的IO或者高CPU操作
innodb_flush_log_at_trx_commit 、innodb_buffer_pool_size 、key_buffer_size 等重要参数
4、检查硬件问题
用 netstat 查看 Linux 网络状况。
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
前面的 netstat -n是netstat的命令,Windows和Linux都可以用,结果显示内容差不多
后面的 awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 是Linux下的命令,主要作用是对netstat输出的结果进行过滤和处理:
运行这一句之后,显示的结果类似如下:
TIME_WAIT 27
FIN_WAIT1 435
FIN_WAIT2 89
ESTABLISHED 82
SYN_RECV 64
CLOSING 4
LAST_ACK 90
内容解释如下:
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
ESTABLISHED:代表一个打开的连接
SYN-RECV:再收到和发送一个连接请求后等待对方对连接请求的确认
SYN-SENT:再发送连接请求后等待匹配的连接请求
CLOSING:等待远程TCP对连接中断的确认
CLOSED:没有任何连接状态
CLOSE-WAIT:等待从本地用户发来的连接中断请求
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
LISTEN:侦听来自远方的TCP端口的连接请求
至强E5-2640 为六核心 十二线程的 看的出你得服务器上有两个处理器,此类处理器还是带的动500人同时访问,没必要换。你的内存使用量太高了,建议关闭不必要后台。如果你要找出是数据库的造成问题 那么你得把数据库代码发出来 不然是无法为你找的 你给的只是CPU和内存在任务管理器里使用率,服务器长时间不关机 也是导致运行缓慢的原因之间,windows系统开时间长了系统占用资源很大临时文件很多,建议使用linux或unix系统关闭不必要的端口服务 数据库建议使用oracle或者my sql数据库。
希望我的回答对你有帮助
支持4层和7层检查,4层检查简单来说就是连接一下tcp端口看能否连接。7层检查目前支持HTTP和HTTPS,用户需要提供一个URL,健康检查会定期去访问这个URL,如果返回的HTTP CODE是200的话认为健康,否则认为出错。
0条评论