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

简介:
服务器内存就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,因此在使用时,量力而大!!!
 



     本文转自cyq1162 51CTO博客,原文链接:http://blog.51cto.com/cyq1162/766511 ,如需转载请自行联系原作者



相关文章
|
24天前
|
安全 网络安全 数据库
Access denied for user ‘qingtingstpublic’@’171.213.253.88’ (using password: YES)宝塔数据库远程无法连接-宝塔数据远程无法连接的正确解决方案-优雅草央千澈-问题解决
Access denied for user ‘qingtingstpublic’@’171.213.253.88’ (using password: YES)宝塔数据库远程无法连接-宝塔数据远程无法连接的正确解决方案-优雅草央千澈-问题解决
45 28
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
93 11
|
2月前
|
SQL
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
|
2月前
|
存储 缓存 数据安全/隐私保护
DMA(Direct Memory Access):直接内存访问
DMA(Direct Memory Access)是一种允许外设直接与内存进行数据传输的技术,无需 CPU 干预。它通过减轻 CPU 负担、提高数据传输效率来提升系统性能。DMA 的工作模式包括直接模式和 FIFO 模式,数据传输方式有单字传送和块传送,寻址模式有增量寻址和非增量寻址。通过缓存一致性协议、同步机制、数据校验和合理的内存管理,DMA 确保了数据在内存中的一致性和完整性。
118 0
|
3月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
1165 2
|
4月前
|
存储 容器
内存越界访问(Out-of-Bounds Access)
【10月更文挑战第12天】
407 2
|
4月前
|
存储 缓存 API
LangChain-18 Caching 将回答内容进行缓存 可在内存中或数据库中持久化缓存
LangChain-18 Caching 将回答内容进行缓存 可在内存中或数据库中持久化缓存
55 6
|
5月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
280 5
|
5月前
|
存储 数据挖掘 数据库
服务器数据恢复—raid磁盘故障导致数据库数据损坏的数据恢复案例
存储中有一组由3块SAS硬盘组建的raid。上层win server操作系统层面划分了3个分区,数据库存放在D分区,备份存放在E分区。 RAID中一块硬盘的指示灯亮红色,D分区无法识别;E分区可识别,但是拷贝文件报错。管理员重启服务器,导致离线的硬盘上线开始同步数据,同步还没有完成就直接强制关机了,之后就没有动过服务器。
|
3月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
573 1