Тест проводился для 2.5 млн записей.
При записи изменений в один поток:
- 90% запросов укладывается в 140мс;
- 95% запросов укладывается в 240мс;
- максимальное время выполнения запроса 489мс.
При записи изменений в два потока:
- 90% запросов укладывается в 300мс;
- 95% запросов укладывается в 375мс;
- максимальное время выполнения запроса 1803мс.
После почти двух суток работы теста (44 часа) время на выборку сильно не изменилось (90% запросов выполняется за 10 секунд).
Если сделать VACUUM VERBOSE
, видно что мусорных версий накопилось не очень много. Возможно нужен более длительный тест, чтобы увидеть влияние старых версий на выборку.
> INFO: vacuuming "public.xxx"
> INFO: scanned index "xxx_pkey" to remove 126887 row versions
> DETAIL: CPU 0.09s/0.42u sec elapsed 23.43 sec.
> INFO: "xxx": removed 126887 row versions in 93750 pages
> DETAIL: CPU 0.79s/2.70u sec elapsed 131.56 sec.
> INFO: index "xxx_pkey" now contains 2500007 row versions in 6897 pages
> DETAIL: 71703 index row versions were removed.
> 0 index pages have been deleted, 0 are currently reusable.
> CPU 0.00s/0.00u sec elapsed 0.02 sec.
> INFO: "xxx": found 98235 removable, 2503728 nonremovable row versions in 242438 out of 242438 pages
> DETAIL: 3721 dead row versions cannot be removed yet.
> There were 478789 unused item pointers.
> 0 pages are entirely empty.
> CPU 2.84s/6.36u sec elapsed 403.06 sec.
- Установка Graphite на mac os: https://gist.github.com/relaxdiego/7539911
- Настройка посекундной детализации: http://stackoverflow.com/questions/17045549
- Настройка ежесекундного обновления графика: graphite-project/graphite-web#285
- Запуск сервиса хранилища: python /opt/graphite/bin/carbon-cache.py start
- Запуск сервера для web-интерфейса: python /opt/graphite/bin/run-graphite-devel-server.py /opt/graphite
Нужно настроить carbon-aggregator чтобы для секундной метки брался максимум (иначе данные бессмысленные получаются).