一般情况下虚拟主机都会分配一定的内存资源用于网站程序运行,有时候站长会遇到虚拟主机内存使用量过高的问题,主因其实还是在于网站程序的选择和访问情况。
几种占用内存比较多的情况1:伪静态、动态、静态
在这三种形式中,伪静态会相对更吃虚拟主机的内存,动态次之,静态吃内存最少(静态生成的方式是直接从硬盘中读取,可以比较节约服务器资源,也是目前进行SEO优化大多数站长比较喜欢的方式),也就是说如果在其他因素完全一致的情况下,伪静态会占用更多内存。
伪静态原理:
脚本程序通过服务器CPU运算,读取数据库,将动态页面临时存储在RAM内存中,同时通过URL重写方式映射一个静态页面的地址,传送至浏览器。
2:程序运行及访问量
实际上访客的每一次访问都会激发一次这样的过程,当有较多访客的时候,数据库就要多次读取,数据库读取、动态页面、URL重写,这个三个过程中都需要使用到RAM内存。
(1)频繁读取数据库
如果访问一个网页,程序运行过程中造成数据库频繁读取,也会造成内存使用率偏高的情况,这种情况建议对数据库读取的代码进行优化,以减少读取频率。
这种情况比较容易产生的是DZ一类的论坛程序,网上有很多站长反应这个情况,某个站长采用了2核4G的虚拟主机,没有任何访问量的情况下按说正常运行没问题,但是一开站就满载死机,最后分析找到了原因,其实是因为开了DZ的某个插件,这个插件对数据库进行比较频繁的读取,关闭这个插件后网站可以正常运行了。
(2)程序运行
服务器脚本程序运行某些任务的时候也会有内存过高的情况,你可以将服务器脚本运行当做你电脑的某个软件运行,比如3D、制图软件肯定是要比只听个音乐所需要的内存少,虽然动态页面的程序在大多数站长看来只是网页格式,但是这种脚本程序也如同我们电脑上的软件一样 *** 作着服务器本身的运算、运行。
所以,建议在进行网站程序设计的时候建议能考虑到对服务器资源的使用,一个网页程序的功能越复杂也就意味着对服务器资源消耗越大。
比如在线制作类的网站,虽然 *** 作端口在浏览器,但是进行数据处理和数据临时保存的确是在服务器端,如果所需要处理的复杂且元素较多,那么肯定是会占用更大的内存资源的。
(3)网络访问及超大文件上传
通常在虚拟主机上都有一个IIS的数据,你可以理解为1个IIS就是打开一个网页的在线状态,每开一个IIS就会多一点内存的使用,当访问强度达到一定量的时候虚拟主机的内存就会比较紧张,特别对于动态页面、伪静态页面的影响更大。
比如:某个DZ系统在运行的时候,就有可能出现一个人打开10多个页面,在进行大上传的过程中很容易造成虚拟主机内存使用过高,所以对于这类程序一般都要设置文件上传限制,禁止一些超大的上传,以及一些站内多媒体文件的访问。
优化方案1:设置页面缓存
可以通过设置页面缓存的方式让浏览器端访问一次网站后将一些通用文件进行缓存,降低多次读取访问对服务器形成的访问压力。
举例说明:Dz一类的程序是有页面缓存设置选项的,织梦cms后台也有关于缓存设置的性能选项(系统-性能选项-需缓存内容全局缓存时间),可以 通过后台进行优化配置;另外一些国内的免费CDN服务也有提供缓存机制,通过CDN方式本身也相当于设置了网页缓存机制,通过CDN也能降低虚拟主机本身的运行压力。
2:内存优化
可以通过优化配置网站的一些文件来实现网站对虚拟主机内存使用情况的优化。
举例说明:Dz类的程序后台有提供内存优化的文件说明,具体可以按照后台的说明进行 *** 作。
3:服务器优化
原理与页面缓存有点类似,主要可以通过禁用页面刷新功能等来降低页面多次加载造成的内存占用过多,一般来说有些服务器是有设置了虚拟主机页面刷新的机制,只要过快刷新页面就会出现阻挡页面,但是有些CMS的后台也有这样的防护机制可以设置。
举例说明:Dz类程序后台的服务器优化配置里有相应的配置,可以参考下图
总结目前所有关于虚拟主机内存占用过高的原因就是这些,需要指出的是如果使用伪静态或者动态页面遇到网页端的DDOS攻击也会出现内存使用过高的情况,所以具体问题具体分析,原理已告知,对于程序方面的具体优化至少有个概念了。同时考虑到大多数站长对于网站程序本身没有什么优化能力,建议在挑选CMS的时候选择能生成静态页面的这一类程序,这类程序对于内存的需求相对较低,也更利于SEO。
参考资料:
发现服务器速度突然变慢的时候可以先检查一下本地网速有没有问题,不要那么快怀疑是服务器的问题。ping一下百度或者其他的知名域名,看一下ping值,如果ping值很大,证明是自己电脑网速问题。
2、机房问题
如果本地电脑的网速没有问题,有可能是机房方面出现了问题,机房不能永远不会出现异常。如果机房受到攻击也会使服务器变慢,另外机房网络出现故障也会导致服务器变慢。这个时候可以联系服务商,让服务商帮忙查看一下是什么原因导致了服务器变慢。
3、电信或者网通的国际路由出现问题
当电信或者网通等宽带提供商的国际路由出现问题的时候也会导致服务器变慢,使用国外服务器的朋友可能会经常遇到。当一个节点掉包或者无法路由时,会影响到经过这个节点的用户,这些用户的服务器速度也就会变慢。这种情况不是机房原因,也不是本地电脑的原因,只能等待宽带服务商修复路由。
4、占用资源或者服务器中毒
当服务器资源不足,经常出现运行软件占用CPU或者占用内存时也会导致服务器速度变慢,遇到这种情况可以优化一下系统,不要运行太多没必要的软件,经常出现占用资源的情况建议及时升级服务器配置。另外,服务器受攻击的时候也会导致速度变慢,所以选择服务器的时候建议选择设有硬件防火墙的机房,做好服务器的基本安全防护工作。
针对以上四个可能原因要一个一个进行排查。产生的原因大概是,在备份数据库的时候,在机器A,那么数据库的拥有者是A\Administrator(如果用windows登录创建),那么但是我们还原到服务器B,那么拥有者可能是B\Administrator,那么SQL CLR的安全性会认为该程序集不可靠
解决方案:
在还原数据库之后,我们可以将数据库的OWNER设置成SA
exec sp_changedbowner 'sa'
再调用存储过程就是成功的
可以查看:KB >
service unavailable可翻译为服务不可用、找不到服务器等意思。
出现service available是一种系统的警告提示。service unavailable 表示服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常,可以等待或刷新。
当一个网站的程序占资源太多或者发生太多的错误,系统日志就会提示:“应用程序池 'xxx' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。
扩展资料:
>
常见的>
1、505 >
2、507 Insufficient Storage 服务器无法存储完成请求所必须的内容。
3、509 Bandwidth Limit Exceeded 服务器达到带宽限制。
参考资料:百度百科->
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)