2014-11-03 1 views
1

Вот что я сделал:Как Vmem влияние параметра а KDB-д сервис

  1. Ран водн процесс с предельной vmem аргумента (скажем, в системе 100GB, работает vmem из 50GB)
  2. Записан a unix top

После того, как весь процесс был завершен, я пытался проанализировать использование памяти. Я видел, что использование процентной загрузки%% возрастало на 90%. Я полагал, что vmem ограничивает потребление памяти. Но кажется, что мой процесс иногда использовал память более чем на 90 ГБ.

Как это можно объяснить? Я что-то упускаю?

+0

Можете ли вы дать немного больше информации, может быть? Какова была ваша команда cmd при запуске q? Вы контролировали поле «VIRT» верхней команды? – terrylynch

+0

Я прошел -vmem x в командной строке cmd для начала q процесса. Я контролирую поле% MEM команды TOP – Pratyush

+0

Я не уверен, что это действительная строка cmd. Вам нужно использовать «-w». Например: «q -w 50000» Запускает процесс q с ограничением памяти 50 гб. См. Http://code.kx.com/wiki/Reference/Cmdline – terrylynch

ответ

1

Как указано в пункте #terrylynch, параметр командной строки «-w» используется для установки крышки памяти в процессе kdb/q. Я проверил и обнаружил, что «-vmem» не является параметром командной строки kdb.

В этом контексте vmem используется в unix для управления памятью процессов.

+0

Хорошо! Что касается «ограничения памяти для выполнения запроса от внешнего источника», то нет встроенного способа управления этим, но обычно вы можете использовать процессы шлюза как посредника между внешним источником и базой данных (rdb или hdb). Таким образом, если неэффективный запрос достигнет предела памяти, он не снизит значение rdb/hdb, он только убьет процесс шлюза. – terrylynch

+0

спасибо большое! Я смог проанализировать мой процесс и работаю над тем, чтобы сделать его более эффективным – Pratyush

 Смежные вопросы

  • Нет связанных вопросов^_^