2014-11-03 32 views
1

这里是我做过什么:怎样的vmem参数影响KDB-Q服务

  1. 冉蒽醌法有限制vmem参数 (比如说在一个100GB的系统,运行50GB的vmem
  2. 已记录unix top命令

整个过程完成后,我试图分析内存使用情况。我看到进程百分比内存使用率超过了90%。我相信vmem限制了内存消耗。但是,我的进程似乎有时会使用超过90GB的内存。

这怎么解释?我错过了什么吗?

+0

你可以多给点信息吗?开始q时,你的cmd线索究竟是什么?你是在监视顶层命令的“VIRT”字段吗? – terrylynch 2014-11-04 13:43:31

+0

我已经在cmd-line arg中传递了-vmem x来启动q进程。 我正在监视TOP命令的%MEM字段 – Pratyush 2014-11-07 06:36:35

+0

我不确定这是否是有效的cmd行arg。你需要使用“-w”。例如: “q -w 50000” 以50GB内存限制开始q进程。看到http://code.kx.com/wiki/Reference/Cmdline – terrylynch 2014-11-07 11:30:27

回答

1

正如#terrylynch所说的,命令行参数“-w”用于在kdb/q进程中设置内存上限。我检查并发现“-vmem”不是kdb命令行参数。

vmem在此上下文中用于unix来管理进程的内存。

+0

好!至于“限制从外部源执行查询的内存” - 没有内置的方法来控制这个,但通常你可以使用网关进程作为外部源和数据库之间的中间人(rdb或hdb )。这样,如果一个低效率的查询达到内存限制,它不会使rdb/hdb失效,它只会终止网关进程。 – terrylynch 2014-11-10 11:48:45

+0

非常感谢!!我能够分析我的过程,并致力于提高效率 – Pratyush 2014-11-10 13:01:31

相关问题