Home  >  Article  >  Database  >  当内存512遇上Access数据库600M,IO磁盘受伤了

当内存512遇上Access数据库600M,IO磁盘受伤了

WBOY
WBOYOriginal
2016-06-07 15:43:181060browse

服务器内存就512M,Access数据库(文章库)600多M,结果竟然就是IO受伤了。 早些年写 秋色园技术原理解析 系列,园里不少看过的帅歌,应该有点印象,从开始到现在,还是铁打的Access数据库。 虽然本人目前对Access恨入之骨,皆因 囊中羞涩,暂时不得不与之 同

服务器内存就512M,Access数据库(文章库)600多M,结果竟然就是IO受伤了。

 

早些年写秋色园技术原理解析系列,园里不少看过的帅歌,应该有点印象,从开始到现在,还是铁打的Access数据库。

虽然本人目前对Access恨入之骨,皆因囊中羞涩,暂时不得不与之同流合污。

 

忙碌微博粉丝精灵几个月来,秋色园一直运行正常,除了远程界面都变的很卡之外,基本上也没发现什么异常。

然而这个隐藏多年的内伤,如果不是那一天,客服把我服务器给关机了,估计到现在也没察觉,让IO受伤了好几个月了。

 

以下是故事的过程,有兴趣扫一眼,没兴趣直接拉到后面看结果:

就在那天,服务器让客服给直接关机了,理由是:CPU持续三小时100%,IO磁盘每秒读写50M,为不影响其它用户,直接给关了,让处理完再开机。

 

前面的CPU百分百是忽悠我的,因为你对客户说,因磁盘读写问题而关机,比较悬,如果说CPU满了而关机,都直观容易理解。

不过,因为刚才我还在看着服务器,CPU正常,根本不可能持续三小时百分”(当然了,偶尔应用程序池刚重启时,瞬时十来秒上到100%这个我知道,由于是短暂的,我一直没查明真相)我让客服给我截图,并恢复开机,我说CPU我会处理。

神奇的客服,给我截了另一张图,说我磁盘读写超标,让我处理完再开机。

当内存512遇上Access数据库600M,IO磁盘受伤了

从这图看的出来,这台服务器上至少挤了好几十个VPS用户了。

磁盘读写超标,是件很悬的事件,首先这超标的标准是什么?硬盘每秒读写速率达到多少才算超标?这超标又怎么影响到其它用户了?

当然了,谁家的网站不经常读写IO呢,这VPS就这么丁点内存,肯定重点就会转发到硬盘去了,习惯性思维以为是自己的程序问题,因为实在平时对磁盘读写没怎么在意,好像开发这么久,还没怎么和磁盘的负载扯上关系,这一块是一片空白。

于是,当开机后,用户一张一张的截图,说让我处理,着实把我弄急了:

没办法,我只好暂时把秋色园网站停止,说我要去吃饭了(八九点还不让人吃饭),然后问客服,降下来没有,客服说:我看到依然还是有问题 。 我先断开你的网络把,你吃完饭后回来 联系我处理。

我急了,肯定不能断开网络了,毕竟微博粉丝精灵服务还在运行,没办法,我下了下手,把粉丝精灵服务也给关了,问,现在正常了没有,客服又来一张图说:现在正常一些了 0.59是1分钟内的负载,1.68是五分钟内的平均负载

当内存512遇上Access数据库600M,IO磁盘受伤了

我特纠结,服务器一共就两网站,这全都关了,你只是正常了点,靠,直接把远程密码发给对方,你去折腾,我去吃饭。

快速吃完回来问客服情况怎样,对方三弄几弄,说正常了,我问弄什么了,对方说:“App_Data 这个目录 我随便改了名字。   除此之外 我都没有动 ”。

这目录下就放着数据库,我说难道和数据库有关?里面有一个数据库600多M(文章表)。

客服说可能,但不确定。

于是我把秋色园解析解到其它地方,然后再开启网站,自己访问一下,才刚开,客服马上问我干啥了,负载又上去了,弄的我只好网站又停了,停了还没用,客服一样叫高,接着又来一张图:

当内存512遇上Access数据库600M,IO磁盘受伤了

说实在,我都不明白这些代表啥意,于是问了,这些怎么看,对方回答“高于 1 即资源超载,三个数字1分钟,5分钟,10分钟内的系统平均负载”。

我纠结了:不占cpu,不占内存,不占带宽,如果磁盘也不占,这网站怎么折腾?

还有这磁盘,是读高,还是写高?

对方答复“只能看一个系统分析值 ,就是VPS虚拟化自带的分析图”。

接下来,我又把数据库的文件夹给改名了,看似得到的回复是正常了,瞬时好似问题的根源,就在于600多M的Access数据库上。

 

结果:

后续的问题,就是把它分成了10个库,用的CYQ.DBImport在远程直接操作分库,改了下算法,终于,客服不再叫了,远程操作变流畅了。

 

多年隐藏的内伤表现:

当Access的数据库大小超过内存的大小时,相关问题主要表现在磁盘读写超标(这个正常没法知道)。

内伤一:界面影响特卡(可能会以为是CPU或内存问题)。

内伤二:还会影响到其它VPS用户(这个更不可能得知了)。

三:同时应用程序池重启变慢(会误以为是程序写的不好)。

内伤四:内存占用明显上去了(误以为缓存了Html导致的)。

 

为此,Access虽然上限是2G,具体还得看你内存有多少,通常硬件不佳内存小才用Access,因此在使用时,量力而大!!!

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn