2014-09-29 5 views
3

Столкнувшись с ситуациями, когда я обнаружил, что услуга rethinkdb вниз по неизвестной причине, я заметил, он использует много памяти:RethinkDB: почему сервис rethinkdb использует столько памяти?

# free -m 
        total  used  free  shared buffers  cached 
    Mem:   7872  7744  128   0   30   68 
    -/+ buffers/cache:  7645  226 
    Swap:   4031  287  3744 

# top 
top - 23:12:51 up 7 days, 1:16, 3 users, load average: 0.00, 0.00, 0.00 
Tasks: 133 total, 1 running, 132 sleeping, 0 stopped, 0 zombie 
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st 
Mem: 8061372k total, 7931724k used, 129648k free, 32752k buffers 
Swap: 4128760k total, 294732k used, 3834028k free, 71260k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND               
1835 root  20 0 7830m 7.2g 5480 S 1.0 94.1 292:43.38 rethinkdb               
29417 root  20 0 15036 1256 944 R 0.3 0.0 0:00.05 top                
    1 root  20 0 19364 1016 872 S 0.0 0.0 0:00.87 init 



# cat log_file | tail -9 
2014-09-22T21:56:47.448701122 0.052935s info: Running rethinkdb 1.12.5 (GCC 4.4.7)... 
2014-09-22T21:56:47.452809839 0.057044s info: Running on Linux 2.6.32-431.17.1.el6.x86_64 x86_64 
2014-09-22T21:56:47.452969820 0.057204s info: Using cache size of 3327 MB 
2014-09-22T21:56:47.453169285 0.057404s info: Loading data from directory /rethinkdb_data 
2014-09-22T21:56:47.571843375 0.176078s info: Listening for intracluster connections on port 29015 
2014-09-22T21:56:47.587691636 0.191926s info: Listening for client driver connections on port 28015 
2014-09-22T21:56:47.587912507 0.192147s info: Listening for administrative HTTP connections on port 8080 
2014-09-22T21:56:47.595163724 0.199398s info: Listening on addresses 
2014-09-22T21:56:47.595167377 0.199401s info: Server ready 

Это кажется много, учитывая размер файлов:

# du -h 
4.0K ./tmp 
156M . 

Нужно ли настраивать другой размер кеша? Считаете ли вы, что это имеет какое-то отношение к поиску услуги на удивление? Я использую v1.12.5

ответ

4

Существовали несколько утечек в предыдущей версии, главная из которых https://github.com/rethinkdb/rethinkdb/issues/2840

Вы, вероятно, следует обновить RethinkDB - текущая версия является 1.15. Если вы запустите 1.12, вам нужно экспортировать свои данные, но это должен быть последний раз, когда вам это нужно, поскольку с 1.14 были введены бесшовные миграции.

0

От Understanding RethinkDB memory requirements - RethinkDB

По умолчанию RethinkDB автоматически настраивает максимальный размер кэша в соответствии с формулой (available_mem - 1024 MB)/2. available_mem

Вы можете изменить это с помощью конфигурационного файла как они документируют, или изменить его с размером (в МБ) из командной строки:

rethinkdb --cache-size 2048 
Смежные вопросы