ruby on rails 上的 mongodb 运行缓慢

ruby on rails 上的 mongodb 运行缓慢

我有一个 ruby​​ on rails 应用程序,其中运行着 mysql 和 mongodb(mongoid 框架)。

我使用 siege 测试了负载测试,-c 60 -r 10在一个页面上设置了 2 个 stationsong 查找查询。每个查询花费超过 22 秒。这是查询:

QUERY database=**** collection=stationsongs selector={"$query"=>{"station_id"=>12812}, "$orderby"=>{"_id"=>-1}} flags=[] limit=10 skip=0 batch_size=nil fields=nil

两个站的歌曲发现查询是相同的(是的,我知道我应该将其合并到一个,但它仍然非常缓慢)

我的集合中只有 100 多万个,并且有 station_id 和 _id 的索引。VPS 有 4 个核心和 32 GB RAM。

为啥这么慢?!

答案1

这个问题比较复杂。它既涉及 VPS 的性能,也涉及 mongodb 上的索引。我添加了正确的索引,它修复了一些问题,但由于 CPU 速度慢,仍然有一些查询速度慢。因此,我转移到专用服务器,一切都解决了,现在响应时间不到 80 毫秒,而不是 22 秒。

VPS 上客户端负载过大,所以我的 CPU 有 60-70% 的电量被盗用了。

相关内容