怎样处理服务器负载量过大

怎样处理服务器负载量过大,第1张

一,确认服务器硬件是否足够支持当前的流量。
二,优化数据库访问。
服务器的负载过大,一个重要的原因是CPU负荷过大,降低服务器CPU的负荷,才能够有效打破瓶颈。而使用静态页面可以使得CPU的负荷最小化。前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。
缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。
如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL避免使用Select from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大量SQL查询。
三,禁止外部的盗链
外部网站的或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的或者文件盗链,好在目前可以简单地通过refer来控制盗链,Apache自己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。当然,伪造refer也可以通过代码来实现盗链,不过目前蓄意伪造refer盗链的还不多,可以先不去考虑,或者使用非技术手段来解决,比如在上增加水印。
四,控制大文件的下载。
大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要提供,建议将大文件放在另外一台服务器上。

这个也要看你的网站的性质了哈。如果是公司的服务器。上面只有一个公司网站这种的话。。就不是正常的了哈。主要是你网站程序代码性能不行。可以请人帮忙改编一下。代码。如果你是空间商的话。。把他限制了就行了。
>1、服务器开启Cache-Control缓存控制(优先级更高)
(相对时间,在这个时间之前不会和服务器通信,本地拿过来直接用)
Cache-Control:max-age=3600,这里是3600秒过期,过期前不会和服务器通信,直接用本地缓存
Cache-Control:no-cache,不使用本地缓存
2、服务器开启Expires(过期时间,绝对时间)
Expires:Thu,21 Jan 2017 23:39:02 GMT

1、Last-Modified(服务器返回此文件最后修改时间)
If-Modified-Since(客户端第二次请求该资源带着上次服务器返回的此文件最后修改时间,比对是否相同)
2、Etag(优先级更高)(第一次请求资源服务器返回一个Etag值)
If-None-Match(第二次请求资源客户端带着之前的Etag值给服务器进行比对)

如果多个参数同事存在时:
强缓存优先级更高,而在强缓存中,Cache-Control比Expires优先级高
协商缓存中,Etag比Last-Modified优先级高

1、正常 *** 作:地址栏输入url,跳转链接,前进后退等
2、手动刷新:F5,点击刷新按钮,右键菜单刷新
3、强制刷新:ctrl+F5

1、正常 *** 作:强制缓存有效,协商缓存有效
2、手动刷新:强制缓存失效,协商缓存有效
3、强制刷新:强制缓存失效,协商缓存失效


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

原文地址: http://outofmemory.cn/zz/10760150.html

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

发表评论

登录后才能评论

评论列表(0条)

保存