0 Comments

虚拟主机内存高什么原因?

发布于:2020-05-04  |   作者:陈奇网络   |   已聚集:人围观

一般情况下虚拟主机都会分配一定的内存资源用于网站程序运行,有时候站长会遇到虚拟主机内存使用量过高的问题,主因其实还是在于网站程序的选择和访问情况。

几种占用内存比较多的情况

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也能降低虚拟主机本身的运行压力。

Dz缓存设置

织梦缓存及性能设置

2:内存优化

可以通过优化配置网站的一些文件来实现网站对虚拟主机内存使用情况的优化。

举例说明:Dz类的程序后台有提供内存优化的文件说明,具体可以按照后台的说明进行操作。

Dz的内存优化

3:服务器优化

原理与页面缓存有点类似,主要可以通过禁用页面刷新功能等来降低页面多次加载造成的内存占用过多,一般来说有些服务器是有设置了虚拟主机页面刷新的机制,只要过快刷新页面就会出现阻挡页面,但是有些CMS的后台也有这样的防护机制可以设置。

举例说明:Dz类程序后台的服务器优化配置里有相应的配置,可以参考下图

Dz的服务器优化

总结

目前所有关于虚拟主机内存占用过高的原因就是这些,需要指出的是如果使用伪静态或者动态页面遇到网页端的DDOS攻击也会出现内存使用过高的情况,所以具体问题具体分析,原理已告知,对于程序方面的具体优化至少有个概念了。同时考虑到大多数站长对于网站程序本身没有什么优化能力,建议在挑选CMS的时候选择能生成静态页面的这一类程序,这类程序对于内存的需求相对较低,也更利于SEO。


陈奇网络www.chenqinet.cn)部分文章转自网络,若有侵权请联系本站删除!
标签:网站内存高(1)