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

标签: 内存 access 数据库 | 发表时间:2012-01-20 00:38 | 作者:路过秋天
出处:http://www.cnblogs.com/

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

客服说可能,但不确定。

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

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

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

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

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

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

结果:

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

 

多年隐藏的内伤表现:

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

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

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

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

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

 

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

本文链接

相关 [内存 access 数据库] 推荐:

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

- - 博客园_首页
服务器内存就512M,Access数据库(文章库)600多M,结果竟然就是IO受伤了. 秋色园技术原理解析 系列,园里不少看过的帅歌,应该有点印象,从开始到现在,还是铁打的Access数据库. 虽然本人目前对Access恨入之骨,皆因囊中羞涩,暂时不得不与之同流合污. 忙碌 微博粉丝精灵几个月来, 秋色园一直运行正常,除了远程界面都变的很卡之外,基本上也没发现什么异常.

将Access转为SQLite数据库

- zhouding - 博客园-首页原创精华区
           SQLite是一个轻量型的数据库,各方面由于Access,对于小型网站来说,非常适合. 我今天决定将系统的数据库由Access转换为SQLite. 在网上搜索了一下,找到了DBManager这个工具,不得不说,这个软件确实好,很强大,在网上找注册码也找到半天,找不到一个.            只要将Access转换为SQLite,然后使用System.Data.SQLite.dll来访问数据库.

VoltDB内存数据库分析

- - 淘宝核心系统团队博客
VoltDB是一个宣称性能超过Mysql 100倍的新型数据库. 它源自Micheal Stonebraker一篇论文H-Store. 在这篇论文发表后,Stonebraker成立了VoltDB公司带着他的一些学生开始在OLTP数据库领域打拼. Stonebraker从上世纪70年代——数据库刚开始发展的时间——就开始在数据库领域活跃,这样的老古董提出的数据库的新想法,给了整个存储领域很大的想象空间.

GitHub - dianping/zebra: DianPing data access layer (DAL) for MySQL.

- -
Zebra是点评内部使用的. 数据库访问层中间件,它具有以下的功能点:. 其中的三个组件的功能分别是:. zebra-api : 最主要的访问层中间件. zebra-ds-monitor-client:基于CAT的监控(可选). zebra-dao:基于MyBatis的异步化的DAO组件(可选). 拷贝里面的mvn依赖到本地仓库(第2和3步骤主要是为了使用zebra-ds-monitor-client中的CAT监控) 4.

对内存数据库的使用已达临界点

- - InfoQ cn
微软的David Campbell在文章《 内存数据库即将到到临界点(The coming in-memory database tipping point)》中说到, 内存数据库离广泛采用越来越近了. 他还说明了微软在这个领域的策略. 据David所说,以下各种趋势使得内存数据库会在五年内变得普遍:.

内存数据库分析-装载整理

- - 人月神话的BLOG
转载整理自: http://titan.iteye.com/. 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database). 磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题.

内存数据库FastDB和SQLite性能测评

- - CSDN博客数据库推荐文章
在很多项目中,经常会碰到这样的需求,需要对大量数据进行快速存储、查询、删除等操作,特别是在一些针对诸如运营商、银行等大型企业的应用中,这些需求尤为常见. 比如智能网中的大量在线并发用户的数据管理、软交换平台中的在线信息交互、宽带/3G等数据网中在线用户行为记录等等. 针对这些情形,我们通常需要选择高性能的数据库产品,而且通常需要使用内存数据库,顾名思义,内存数据库指的是所有的数据访问控制都在内存中进行,这是与磁盘数据库相对而言的,磁盘数据库虽然也有一定的缓存机制,但都不能避免从外设到内存的交换,而这种交换过程对性能的损耗是致命的,目前主流数据库如SYBASE、ORACLE等都有这种缓存机制,如将特定表绑定一定的缓存,从而在一定程度上改善数据吞吐性能.

如何让NoSQL内存数据库适合企业级应用

- - CSDN博客数据库推荐文章
如何让NoSQL内存数据库适合企业级应用. 作者:chszs,转载需注明. 博客主页: http://blog.csdn.net/chszs. 英文原文: How to Make Your In-memory NoSQL Datastores Enterprise-Ready. 对于每一个关注用户体验的Web应用或移动应用而言,NoSQL内存数据库(例如开源的 Redis和Memcached)正逐步成为事实上的标准.

[转]内存数据库的几个典型应用场景

- - 小鸥的博客
近些年内存数据库(IMDB)技术发展迅猛. 除了与生俱来的高性能之外,IMDB本身越来越向着功能完整的独立DB的方向发展. 下面简单描述当前比较常见的几个IMDB应用场景,希望对有志于IMDB技术的同僚以启发——. IMDB最大规模的应用集中在电信领域,尤其以计费系统为主. 当然,近些年陆续开始向新的电信业务领域拓展,例如核心网、CRM、精确营销等.

内存参数设置不合理导致数据库HANG

- - CSDN博客数据库推荐文章
内存参数设置不合理导致数据库HANG. 2节点RAC,数据库忽然HANG住,重启一个实例后恢复正常. 故障时间段约为8:30-10:00,以下为alert报错:. Thread 2> ORA-07445: 出现异常错误: 核心转储 [kksMapCursor()+323] [SIGSEGV] [ADDR:0x8] [PC:0x763597B] [Address not mapped to object] [].