这里是我做过什么:怎样的vmem参数影响KDB-Q服务
- 冉蒽醌法有限制
vmem
参数 (比如说在一个100GB的系统,运行50GB的vmem
) - 已记录unix
top
命令
整个过程完成后,我试图分析内存使用情况。我看到进程百分比内存使用率超过了90%。我相信vmem限制了内存消耗。但是,我的进程似乎有时会使用超过90GB的内存。
这怎么解释?我错过了什么吗?
这里是我做过什么:怎样的vmem参数影响KDB-Q服务
vmem
参数 (比如说在一个100GB的系统,运行50GB的vmem
)top
命令整个过程完成后,我试图分析内存使用情况。我看到进程百分比内存使用率超过了90%。我相信vmem限制了内存消耗。但是,我的进程似乎有时会使用超过90GB的内存。
这怎么解释?我错过了什么吗?
正如#terrylynch所说的,命令行参数“-w”用于在kdb/q进程中设置内存上限。我检查并发现“-vmem”不是kdb命令行参数。
vmem在此上下文中用于unix来管理进程的内存。
好!至于“限制从外部源执行查询的内存” - 没有内置的方法来控制这个,但通常你可以使用网关进程作为外部源和数据库之间的中间人(rdb或hdb )。这样,如果一个低效率的查询达到内存限制,它不会使rdb/hdb失效,它只会终止网关进程。 – terrylynch 2014-11-10 11:48:45
非常感谢!!我能够分析我的过程,并致力于提高效率 – Pratyush 2014-11-10 13:01:31
你可以多给点信息吗?开始q时,你的cmd线索究竟是什么?你是在监视顶层命令的“VIRT”字段吗? – terrylynch 2014-11-04 13:43:31
我已经在cmd-line arg中传递了-vmem x来启动q进程。 我正在监视TOP命令的%MEM字段 – Pratyush 2014-11-07 06:36:35
我不确定这是否是有效的cmd行arg。你需要使用“-w”。例如: “q -w 50000” 以50GB内存限制开始q进程。看到http://code.kx.com/wiki/Reference/Cmdline – terrylynch 2014-11-07 11:30:27