用mongodb作为数据库服务器访问时非常慢?

用mongodb作为数据库服务器访问时非常慢?,第1张

  你查看一下,如果数据文件大于系统内存,查询速度会下降几个数量级,因为mongodb是内存数据库。我以前测试过,1000万数据的时候没有索引情况下查询可能会几秒钟甚至更久。

  这种情况,你最好给经常查询的项创建索引,有索引以后查询速度会非常非常非常的快。

  另外一点是数据索引如果大于内存,速度也会下降很多。而且对于多条件查询,如果你查询的顺学和索引顺序不同,也不能使用索引。这个要慢慢摸索

  如果你使用了replica set,这个会影响写入速度的,三个replica set,速度会降低到三分之一。

  大概主要影响速度的就是这几点吧,如果你需求不是非常复杂,我以前测试mongodb速度方面优化好的情况下还是可以接受的。希望能帮到你

2你写的一些操作语句,比如查询等语句是不是尽量将语句优化了的(查询一个东西,要用尽量少的语句实现一样的功能,以减少读取数据库的次数)3你说到上面服务器内存和客户机器的对比,内存的确是小了点现在个人机器的内存也开始普及1G了服务器最少要2G还有,你的硬盘是不是老化,出现速度减慢等原因可以用个软件测试下4你是在局域网,就算是用双绞线连接也不会是网速的原因,这点你可以放心在用完了之后是不是及时关闭了,有的时候这里疏忽了对整个程序的影响是非常大的添加评论(0)◆◆评论读取中请登录后再发表评论!

这种问题挺复杂的,有些原因真的很出意料,一般程式化的方法还找不到。

1先用浏览器F12控台查看一下网页加载资源的情况,看是不是某些资源加载慢的缘故。

2如果不是的话, 那就检查一下是不是网络问题。

3如果都不是上面的问题,你再去看下服务器的状况,应该有后台可以看,看下是不是带宽不足。(或者用top,iptraf命令看一下)

4最后还有问题的话看下你php代码是不是有问题,用xhprof看下代码哪里慢。

---------

例1:

服务器: 戴尔 PowerEdge R620 Rack Mount Chassis

今天公司的 web服务器响应异常的慢 平常 200ms 执行完毕的一个action,现在要 2秒多才能执行那个完毕。

之前也出现过这种状况,但再重启之后就一般及解决了。

遍历网上

说是

1、网络原因 2、系统原因 3、硬件原因

首先分析网络原因 我 ping 服务器的 接收到响应要1ms,平常都是小于 1ms

2、系统原因

我查看了任务管理器发现 CPU 横容易就奔向100%了。

4 个cpu 核心 马上冲向顶端持平了。

3、硬件原因

听网上说可能还有一部分磁盘 i/o 也会导致运行速度大减的

2、3 部分当时很着急解决问题没有截图、

下面是今天晚上服务器 恢复正常后的基本空闲时的cpu 状况、和磁盘读取状况

想问一下、普通我这种刀片服务器正常运行时oracle 的一般最高读写速度、为什么怎样找到程序中那个可能正执行死循环的程序

经过之前一天的推测,觉得应该是服务器上的另一个应用服务器,出现了死循环,联系了此程序开发人员让其恢复了上一个版本,问题就没有了。

就是那一个个验证推测麻烦,花了我一天的时间,想直接知道哪里死循环。

经过之前一天的推测,觉得应该是服务器上的另一个应用服务器,出现了死循环,联系了此程序开发人员让其恢复了上一个版本,问题就没有了。

就是那一个个验证推测麻烦,花了我一天的时间,想直接知道哪里死循环。

例2:

我的WIN2003独立服务器(P4 28G/1G的方正商用机,非专业服务器),ACCESS数据库有800多兆,同时在线会员100多人。浏览速度很慢,日发帖从1000多锐减到200多贴,网友怨声载道,不得已才转换到DZ。

转换后DZ的数据库有600多兆。刚开始挺快的,随后升级到DZ61,现在过了才1个多月,服务器响应越来越慢。CPU占用并不高,通常不到20%,内存占用好像也正常。就是经常硬盘灯一直亮(是常亮,不是闪亮),每到这时论坛页面就打不开,有时光显示页面头部,要等很长时间。硬盘灯不常亮的时候速度挺快。

以前是一两天出现一次,后来越来越频繁,现在过不多大会儿就出现一次,简直受不了了。

相信很多人在用windows2003服务器或者vps,而且一开始用,速度都相当的快,但是过了几天速度变慢了很多,也会遇到有时候网站打开卡等现象,即使网站没什么流量也会出现。

有时候就会怀疑是不是我的服务器或者vps很差劲,买到假货了?其实不然。

其实这些问题作祟的都是w3wpexe这个iis进程在捣鬼。

在WINDOWS2003+IIS6下,经常出现w3wp的内存占用不能及时释放,从而导致服务器响应速度很慢。

遇到这些现象,我们可以用以下方法进行解决,不影响网站运营及系统问题。

可以做以下配置修改进行改善:

1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。

2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。同时,设置同时运行的web工作进程数目为1。再设置当内存或者cpu占用超过多少,就自动回收内存。

一般来说就可以解决了。但仍然会出现个别网站因为程序问题,不能正确释放。

那么,怎么样才能找到是哪一个网站的?解决办法:

1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid

2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池

3、到iis中察看该应用程序池对应的网站,就可以了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 用mongodb作为数据库服务器访问时非常慢?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情