新闻资讯
技术解析
常见程序不稳定的原因和解决方法
2017-02-15 10:18:30
摘要:何为耗资源?即程序占用CPU及内存过多,是对资源的一种浪费。客户使用虚拟主机时程序编写的不合理、错误严重,造成服务器负载急剧上升,极大的影响了正常客户的使用,就是耗资源。
  1、何谓耗资源?      即程序占用CPU及内存过多,是对资源的一种浪费。客户使用虚拟主机时程序编写的不合理、错误严重,造成服务器负载急剧上升,极大的影响了正常客户的使用,就是耗资源。      耗资源分为耗用CPU资源和内存资源,2种。      2、为什么会出现耗资源?      (1)程序编写有问题。(一般为asp程序变量没有清空)      (2)数据库调用频繁。(常见的是access数据库问题)      (3)由于访问量或流量过大导致的耗内存问题引起的耗资源(此情况一般为大流量主机)      3、耗资源的影响。      (1)影响较轻的,会使客户网站访问慢。      (2)严重的会使IIS服务停止,网站无法访问。      4、耗资源处理方法?      通过观察程度客户耗资源的程度,进行处理:      (1)程度较轻:关闭其耗资源的程序;      (2)程度较重:关闭其耗资源的目录;      (3)严重:关闭asp权限。(相当于关闭站点)      5、耗资源客户的解决办法?      耗资源用户一般是网站为ACCESS数据库的用户。      主要存在的问题:      (1)数据库过大:根据微软的建议,ACCESS数据库不得超过30M。      解决方法:      1)要升级到SQLSERVER。因为sql是基于客户/服务器结构,这意味着服务器不用再执行客户端的任务,而access并不是基于客户/服务器结 构,除了处理数据库任务外,其还必须在各个客户端活动间划分处理器时间,因此也会造成系统负载非常的大。      2)压缩数据库。把数据库空间压缩到规定范围内。但是对于结构比较复杂的用户,压缩的效果不大,这种用户建议拆分数据库。      (2)由用户程序导致的耗资源。一般都是调用ACCESS数据库频繁或本身编写BUG导致。主要表现在:数据库长驻进程多,数据库调用完毕而没有相应的关 闭语句,造成连接长期占用无法释放而形成错误、程序变量再调用完毕后结束时没有进行清理。我们建议您尽快修改程序升级成为基于客户/服务器结构的SQL数 据库,或租用专门为高级客户量身定制的独享主机,由您独享一台服务器.以获得更高的系统资源。      6、耗资源与大流量的区别:      (1)大流量客户:进行大量的图片下载、广告互换、聊天等工作,造成带宽严重占用。      (2)耗资源客户:运行自己网站程序,造成服务器负载急剧上升,造成服务器无法正常服务。      (3)区别在与大流量客户是网络带宽方面,而耗资源客户是对服务器正常运行方面。      --------------------------------------------------------------------------      站点占用服务器资源的部分原因      1.有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST(ASP进程)中。      参考解决办法:      压缩和修复数据库      下载数据库文件--[如果是.asp的扩展名,请改为.mdb的扩展名]--用ACCESS打开--选择工具--数据库实用工具--压缩和修复数据库--[改回.asp的扩展名]--上传覆盖原来数据库文件      2.注册了不良的Com组件,特别是用VB开发的ACTIVE X控件,可能导致占用内存使用量不断增长      参考解决办法:尽量减少或避免非官方或是客户要求的不必要的组件      3.多媒体等文件下载占用服务器带宽      参考解决办法:停止下载      4.程序问题      需要及时的关闭不再使用的数据库,以避免一直占用服务器资源      在conn.asp 连接数据库字符串语句中加入如下      sub endConnection()      conn.close      set conn=nothing      end sub      其它程序问题:把IE选项里 显示友好HTTP错误信息 的勾取消掉,再访问网站看出现什么错误信息,然后再调试      5.上传重要的数据库等文件更新,由于正处于受访问状态,可能导致瞬间CPU占用率上升      一般此情况较少,若有出现此情况时,可能有必要先暂停站点,再作更新      6.ACCESS论坛大了以后就很容易出现数据库方面的问题,当你的论坛数据库在10M以上,帖子5万左右,可能就会出现数据库吃不消的情况      临时解决办法:定期删除多余的数据、压缩数据库,限制论坛灌水,甚至限制论坛注册。如果是动网论坛,可以使用论坛自带的分表储存功能,会有较好的效果      比较长远办法:更换论坛和数据库,一般都采用动网sql商业版本+MSSQL 的方案来解决      7.优化程序      上面的第1点最为主要,有的客户程序已用了一年半载,所以他一直坚决认为程序上没有问题,其实数据库使用久了,就可能会出现错误或是数据库臃肿过大,定期删除多余的数据、压缩数据库是有必要的,且有利于提高站点访问的速度      8.ACCESS 缺点:      安全性不够,加了用户级密码容易破解      C/S 结构下对服务器要求很高,否则容易造成 MDB 损坏      并发数255,但是对高强度操作适应性差,如果服务器不够好,网络不够好,编程的方法不够好,6-7个人同时访问就能导致 MDB 损坏或者并死      不能将 VBA 代码开发的软件系统直接编译成 EXE 可执行文件,不能脱离 ACCESS 或者 ACCESS RUNTIME 环境,该环境相对其他软件体积较大(50M左右)
USA-IDC为您提供免备案服务器 0元试用
立即联系在线客服,即可申请免费产品试用服务
立即申请