服务器响应慢是怎么回事和怎么解决响应速度慢
这种问题挺复杂的,有些原因真的很出意料,一般程式化的方法还找不到。
1先用浏览器F12控台查看一下网页加载资源的情况,看是不是某些资源加载慢的缘故。
2如果不是的话, 那就检查一下是不是网络问题。
3如果都不是上面的问题,你再去看下服务器的状况,应该有后台可以看,看下是不是带宽不足。(或者用top,iptraf命令看一下)
4最后还有问题的话看下你php代码是不是有问题,用xhprof看下代码哪里慢。
---------
例1:
服务器: 戴尔 PowerEdge R620 Rack Mount Chassis
今天公司的 web服务器响应异常的慢 平常 200ms 执行完毕的一个action,现在要 2秒多才能执行那个完毕。
之前也出现过这种状况,但再重启之后就一般及解决了。
遍历网上
说是
1、网络原因 2、系统原因 3、硬件原因
首先分析网络原因 我 ping 服务器的 接收到响应要1ms,平常都是小于 1ms
2、系统原因
我查看了任务管理器发现 CPU 横容易就奔向100%了。
4 个cpu 核心 马上冲向顶端持平了。
3、硬件原因
听网上说可能还有一部分磁盘 i/o 也会导致运行速度大减的
2、3 部分当时很着急解决问题没有截图、
下面是今天晚上服务器 恢复正常后的基本空闲时的cpu 状况、和磁盘读取状况
想问一下、普通我这种刀片服务器正常运行时oracle 的一般最高读写速度、为什么怎样找到程序中那个可能正执行死循环的程序
经过之前一天的推测,觉得应该是服务器上的另一个应用服务器,出现了死循环,联系了此程序开发人员让其恢复了上一个版本,问题就没有了。
就是那一个个验证推测麻烦,花了我一天的时间,想直接知道哪里死循环。
经过之前一天的推测,觉得应该是服务器上的另一个应用服务器,出现了死循环,联系了此程序开发人员让其恢复了上一个版本,问题就没有了。
就是那一个个验证推测麻烦,花了我一天的时间,想直接知道哪里死循环。
例2:
我的WIN2003独立服务器(P4 28G/1G的方正商用机,非专业服务器),ACCESS数据库有800多兆,同时在线会员100多人。浏览速度很慢,日发帖从1000多锐减到200多贴,网友怨声载道,不得已才转换到DZ。
转换后DZ的数据库有600多兆。刚开始挺快的,随后升级到DZ61,现在过了才1个多月,服务器响应越来越慢。CPU占用并不高,通常不到20%,内存占用好像也正常。就是经常硬盘灯一直亮(是常亮,不是闪亮),每到这时论坛页面就打不开,有时光显示页面头部,要等很长时间。硬盘灯不常亮的时候速度挺快。
以前是一两天出现一次,后来越来越频繁,现在过不多大会儿就出现一次,简直受不了了。
相信很多人在用windows2003服务器或者vps,而且一开始用,速度都相当的快,但是过了几天速度变慢了很多,也会遇到有时候网站打开卡等现象,即使网站没什么流量也会出现。
有时候就会怀疑是不是我的服务器或者vps很差劲,买到假货了?其实不然。
其实这些问题作祟的都是w3wpexe这个iis进程在捣鬼。
在WINDOWS2003+IIS6下,经常出现w3wp的内存占用不能及时释放,从而导致服务器响应速度很慢。
遇到这些现象,我们可以用以下方法进行解决,不影响网站运营及系统问题。
可以做以下配置修改进行改善:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。同时,设置同时运行的web工作进程数目为1。再设置当内存或者cpu占用超过多少,就自动回收内存。
一般来说就可以解决了。但仍然会出现个别网站因为程序问题,不能正确释放。
那么,怎么样才能找到是哪一个网站的?解决办法:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池
3、到iis中察看该应用程序池对应的网站,就可以了。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
拥有大量用户的企业,经常会面临如下的难题:在高并发的情况下,经常会导致服务器响应速度慢,严重的情况会直接导致服务器停止服务。此时,会导致企业的业务中断,影响客户的正常访问。
负载均衡应运而生
<u>需求:本次实验最低需求两台云服务器ECS</u>
上图创建了两台云服务器ECS实例和一个负载均衡实例,它们各自拥有各自的弹性IP地址
在浏览器两个页面分别输入两台云服务器ECS的弹性IP访问
比较两台ECS的访问结果,发现部署的网站内容相同,只是显示的后端服务器IP不同。
在阿里云登陆界面选择用RAM用户登录
使用实验提供的 子用户名称 和 子用户名密码 登陆阿里云管理控制台
<img src="https://upload-imagesjianshuio/upload_images/20425542-fa1a73a6dc138f09pngimageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="4登陆png" style="zoom:50%;" />
<img src="https://upload-imagesjianshuio/upload_images/20425542-4d17f4b440d7c9a5pngimageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="5登陆png" style="zoom:50%;" />
登录后点击左侧 导航栏的 产品与服务 选择 负载均衡
<img src="https://upload-imagesjianshuio/upload_images/20425542-3bad79d4ddfed80dpngimageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="6png" style="zoom: 67%;" />
a 在控制台点击左侧 实例管理 ,在右侧页面中的红框处看到负载均衡的 公网服务地址
该公网服务地址即为负载均衡实例的弹性IP地址
b在浏览器上输入a的公网服务地址并访问
可见后端服务器IP尾数为131(ECS-2),但当我们刷新一遍后,如下图
后端服务器IP尾数变为130(第二台ECS-1)
当我们不停的刷新,会发现后端服务器IP 实在这两台ECS的 内外地址 之间轮流转换
因为我们在第二步配置的两台ECS的权重是相同的
下一步我们试着改变两台ECS的权重不相同看看效果如何
a进入控制台--选择负载均衡--实例管理--点击进入实例--默认服务器组,进入如下图所示
b勾选两台服务器--点击修改权重
c设置权重 30,90,效果如下图
d在浏览器中,刷新多次 负载均衡服务地址 的页面,统计页面的 后端服务器IP 。
可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例, 1 次访问权重为 30 的 ECS实例。
用户可以根据实际情况调整负载均衡器的请求分发,一般将 配置高的服务器设置的权重调高 , 配置较低的服务器设置的权重调低 。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
a实例管理界面---监听---修改监听配置
b点击修改
c开启会话保持、可选择修改会话保持超时时间
d依次点击下一步,不修改
e 再次在浏览器中输入 负载均衡 的 IP地址 , 多次刷新 ,发现在会话保持的超时时间内请求 只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发。
a进入实例
b点击停止
<img src="https://upload-imagesjianshuio/upload_images/20425542-e7d5f08534cd1938pngimageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="28png" style="zoom:67%;" />
c返回,显示如下图所示,ECS-2已关闭
d在监听页面和实例管理页面,健康状态显示异常
e 再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS-1上。
看下延时。
如果延时正常的话,然后查询下连接数,检查是不是创建了大量连接。
再没有问题就尝试sqlplus直连。正常情况数据库主机通信不是很大,一般是程序中有大量创建连接引起的。
0条评论