新手问题 ActiveRecord 取大数据的问题

a886937 · June 14, 2019 · Last by a886937 replied at June 14, 2019 · 1354 hits

我使用的 rails4 用 ActiveRecord 取较大数据的时候,在等待的过程中,整个站点都会卡死,任何页面接口都无法访问。额。请求不是多线程的吗,一方面数据大还会影响其他不取数据的页面吗? 另外我用的是 ms sqlserver 2008,借助了 gem activerecord-sqlserver-adapte。 各位大佬有什么好的解决方案吗,先谢谢各位。

App server 的设置?用了多进程或多线程吗?

Reply to Rei #0

1.没有设置,可以指点下怎么设置吗 2.是指写异步代码吗? 谢谢你的回复

2 Floor has deleted

首先要弄清楚什么地方卡,最好给个服务器的结构图

取较大数据的时候,可以考虑看看下面这些

  1. 看看数据库服务器的内存,CPU,磁盘等使用情况
  2. 看看 APP 服务器的内存,CPU,磁盘等使用情况
Reply to a886937 #1

怎么部署的?用了 puma 还是什么?

内存满了吧

  1. 直接看服务器运行情况,CPU,内存和负载
  2. 打开日志的 debug 模式看下操作日志,看哪里卡
  3. 打开数据库,查看当前执行耗时最长的语句
  4. nginx 配置是不是调配到与服务器相对最优的参数了,如内核数量与进程数,内存容量等

分析完,差不多就是调参数,优化语句,添加索引,提升服务器配置等

Reply to Rei #4

用的 nginx。

感谢各位的回答,我怀疑也是内存原因,我一个 1 核 2g 的服务器,跑了 7,8 个站点。而且其中大部分都比较吃内存。明天我排查一下。

a886937 closed this topic. 06 Mar 17:55
You need to Sign in before reply, if you don't have an account, please Sign up first.