2015-08-26 6 views
0

У нас есть выделенные группы D-узлов и E-узлов в конфигурации производства. и я пытаюсь собрать статус запроса сервера задач на всех хостах в группе D-узлов. Я использую xdmp: серверный статус (host_id, server_id) где host_id является идентификатором одного из наших шести хостов, принадлежащих к группе D-узел, а server_id является идентификатором taskserver для D -node. Запрос выполняется просто отлично, но у меня есть путаницы в отношении некоторых элементов на выходе (см. Ниже).Статус сервера MarkLogic

  1. В чем разница между нитями и max_threads элементы? Я искал API MarkLogic для xdmp: server-status() и похоже, что они поместили одно и то же описание для обоих этих элементов, что, очевидно, неверно.
  2. Содержит ли сумма элементов request_status количество запущенных задач? Это, наверное, интуитивно, но просто хотел подтвердить.

    <server-status xmlns="http://marklogic.com/xdmp/status/server"> 
        <server-id>11927597993558616659</server-id> 
        <host-id>10652389071003024571</host-id> 
        <server-kind>task-server</server-kind> 
        <enabled>true</enabled> 
        <threads>9</threads> 
        <max-threads>16</max-threads> 
        <max-time-limit>3600</max-time-limit> 
        <default-time-limit>600</default-time-limit> 
        <current-time>2015-08-26T04:06:41.622879-04:00</current-time> 
        <request-statuses> 
        <request-status> 
        <request-id>17847109729564550394</request-id> 
        <server-id>11927597993558616659</server-id> 
        <host-id>10652389071003024571</host-id> 
        <transaction-id>11386673421668364533</transaction-id> 
        <canceled>false</canceled> 
        <modules>16882056828749629778</modules> 
        <database>13691199455930504749</database> 
        <root>/</root> 
        <request-kind>invoke</request-kind> 
        <request-text>/MarkLogic/cpf/triggers/on-state-enter.xqy</request-text> 
        <update>false</update> 
        <start-time>2015-08-26T04:06:41.621354-04:00</start-time> 
        <time-limit>600</time-limit> 
        <max-time-limit>3600</max-time-limit> 
        <user>15525372533614500271</user> 
        <trigger-depth>0</trigger-depth> 
        <expanded-tree-cache-hits>0</expanded-tree-cache-hits> 
        <expanded-tree-cache-misses>0</expanded-tree-cache-misses> 
        <request-state>running</request-state> 
        <profiling-allowed>true</profiling-allowed> 
        <profiling-enabled>false</profiling-enabled> 
        <debugging-allowed>true</debugging-allowed> 
        <debugging-status>detached</debugging-status> 
        <retry-count>0</retry-count> 
        </request-status> 
        <request-status> 
        <request-id>8474714682726605430</request-id> 
        <server-id>11927597993558616659</server-id> 
        <host-id>10652389071003024571</host-id> 
        <transaction-id>8554209989266201299</transaction-id> 
        <canceled>false</canceled> 
        <modules>16882056828749629778</modules> 
        <database>13691199455930504749</database> 
        <root>/</root> 
        <request-kind>invoke</request-kind> 
        <request-text>/MarkLogic/cpf/triggers/on-state-enter.xqy</request-text> 
        <update>true</update> 
        <start-time>2015-08-26T04:06:41.483786-04:00</start-time> 
        <time-limit>600</time-limit> 
        <max-time-limit>3600</max-time-limit> 
        <user>15525372533614500271</user> 
        <trigger-depth>0</trigger-depth> 
        <expanded-tree-cache-hits>20</expanded-tree-cache-hits> 
        <expanded-tree-cache-misses>0</expanded-tree-cache-misses> 
        <request-state>running</request-state> 
        <profiling-allowed>true</profiling-allowed> 
        <profiling-enabled>false</profiling-enabled> 
        <debugging-allowed>true</debugging-allowed> 
        <debugging-status>detached</debugging-status> 
        <retry-count>0</retry-count> 
        </request-status> 
        <request-status> 
        <request-id>6530741740134403011</request-id> 
        <server-id>11927597993558616659</server-id> 
        <host-id>10652389071003024571</host-id> 
        <transaction-id>14792921325069589956</transaction-id> 
        <canceled>false</canceled> 
        <modules>16882056828749629778</modules> 
        <database>13691199455930504749</database> 
        <root>/</root> 
        <request-kind>invoke</request-kind> 
        <request-text>/MarkLogic/cpf/triggers/on-state-enter.xqy</request-text> 
        <update>true</update> 
        <start-time>2015-08-26T04:06:41.52227-04:00</start-time> 
        <time-limit>600</time-limit> 
        <max-time-limit>3600</max-time-limit> 
        <user>15525372533614500271</user> 
        <trigger-depth>0</trigger-depth> 
        <expanded-tree-cache-hits>20</expanded-tree-cache-hits> 
        <expanded-tree-cache-misses>0</expanded-tree-cache-misses> 
        <request-state>running</request-state> 
        <profiling-allowed>true</profiling-allowed> 
        <profiling-enabled>false</profiling-enabled> 
        <debugging-allowed>true</debugging-allowed> 
        <debugging-status>detached</debugging-status> 
        <retry-count>0</retry-count> 
        </request-status> 
        <request-status> 
        <request-id>9441948619847315123</request-id> 
        <server-id>11927597993558616659</server-id> 
        <host-id>10652389071003024571</host-id> 
        <transaction-id>13501074757179797206</transaction-id> 
        <canceled>false</canceled> 
        <modules>16882056828749629778</modules> 
        <database>13691199455930504749</database> 
        <root>/</root> 
        <request-kind>invoke</request-kind> 
        <request-text>/MarkLogic/cpf/triggers/on-status-enter.xqy</request-text> 
        <update>false</update> 
        <start-time>2015-08-26T04:06:41.594876-04:00</start-time> 
        <time-limit>600</time-limit> 
        <max-time-limit>3600</max-time-limit> 
        <user>15525372533614500271</user> 
        <trigger-depth>0</trigger-depth> 
        <expanded-tree-cache-hits>0</expanded-tree-cache-hits> 
        <expanded-tree-cache-misses>0</expanded-tree-cache-misses> 
        <request-state>running</request-state> 
        <profiling-allowed>true</profiling-allowed> 
        <profiling-enabled>false</profiling-enabled> 
        <debugging-allowed>true</debugging-allowed> 
        <debugging-status>detached</debugging-status> 
        <retry-count>0</retry-count> 
        </request-status> 
        <request-status> 
        <request-id>3267724788720707644</request-id> 
        <server-id>11927597993558616659</server-id> 
        <host-id>10652389071003024571</host-id> 
        <transaction-id>16009199203479096620</transaction-id> 
        <canceled>false</canceled> 
        <modules>16882056828749629778</modules> 
        <database>13691199455930504749</database> 
        <root>/</root> 
        <request-kind>invoke</request-kind> 
        <request-text>/MarkLogic/cpf/triggers/on-state-enter.xqy</request-text> 
        <update>true</update> 
        <start-time>2015-08-26T04:06:41.483616-04:00</start-time> 
        <time-limit>600</time-limit> 
        <max-time-limit>3600</max-time-limit> 
        <user>13094335114653925163</user> 
        <trigger-depth>0</trigger-depth> 
        <expanded-tree-cache-hits>20</expanded-tree-cache-hits> 
        <expanded-tree-cache-misses>0</expanded-tree-cache-misses> 
        <request-state>running</request-state> 
        <profiling-allowed>true</profiling-allowed> 
        <profiling-enabled>false</profiling-enabled> 
        <debugging-allowed>true</debugging-allowed> 
        <debugging-status>detached</debugging-status> 
        <retry-count>0</retry-count> 
        </request-status> 
    </request-statuses> 
    <request-rate>16.11519</request-rate> 
    <queue-size>0</queue-size> 
    <queue-limit>100000</queue-limit> 
    <expanded-tree-cache-hits>241396964</expanded-tree-cache-hits> 
    <expanded-tree-cache-misses>65339949</expanded-tree-cache-misses> 
    <expanded-tree-cache-hit-rate>161.5713</expanded-tree-cache-hit-rate> 
    <expanded-tree-cache-miss-rate>8.095861</expanded-tree-cache-miss-rate> 
    <fs-program-cache-hits>26819890</fs-program-cache-hits> 
    <fs-program-cache-misses>26819890</fs-program-cache-misses> 
    <db-program-cache-hits>3632389</db-program-cache-hits> 
    <db-program-cache-misses>3632389</db-program-cache-misses> 
    <fs-main-module-seq-cache-hits>4694</fs-main-module-seq-cache-hits> 
    <fs-main-module-seq-cache-misses>4694</fs-main-module-seq-cache-misses> 
    <db-main-module-seq-cache-hits>15144</db-main-module-seq-cache-hits> 
    <db-main-module-seq-cache-misses>15144</db-main-module-seq-cache-misses> 
    <fs-lib-module-cache-hits>1102986</fs-lib-module-cache-hits> 
    <fs-lib-module-cache-misses>1102986</fs-lib-module-cache-misses> 
    <db-lib-module-cache-hits>14221</db-lib-module-cache-hits> 
    <db-lib-module-cache-misses>14221</db-lib-module-cache-misses> 
    

ответ

1

Да Документы ошибаются, я подам ошибку на том, что они имеют в виду, что вы, вероятно, думаете. max-threads - максимальное количество потоков, которые могут выполняться, потоки - это текущее количество потоков «running». Сумма статуса запроса должна (как правило) соответствовать потокам. Поскольку потоки находятся в «пуле», существуют периоды, когда суммы не совпадают точно.

Вы можете попробовать это для простого теста.

for $i in 1 to 1000 return 
xdmp:spawn-function(function() { xdmp:sleep(10000) }) 

Он должен немедленно вернуть очередь в 1000 задач.

Затем запустите это редко

xdmp:server-status(xdmp:host(),xdmp:server("TaskServer")) ! (./*:threads,count(./*:request-statuses/*:request-status)) 
+0

Большое спасибо @DALDEI. Я постоянно вижу, что сумма статуса запроса меньше, чем потоки. Я не уверен, что полностью понимаю, как это объясняется тем, что потоки объединены. Извиняюсь, если я упускаю что-то очевидное! –

+0

max_threads просто означает, что определенное количество параллельно работающих рабочих потоков будет работать, чтобы очистить очередь сервера задач, и это число не может превышать max_threads. max_threads представляет размер пула потоков, резервуар многократно используемых рабочих потоков. потоки говорят, сколько фактически активных. – grtjn

+0

Спасибо. Я просто думаю, что количество элементов request_status должно совпадать со значением элементов нитей, если они по существу представляют одну и ту же информацию. –

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