делаю
1ый запуск полного TPC-B (на "только селекты" ускорения от установки в off указанных переменных смысла нет) root@hz:~# pgbench -U postgres -j 64 -c 64 -M prepared -T 120 -v -P 5 pgbench starting vacuum...end. starting vacuum pgbench_accounts...end. progress: 5.0 s, 99224.9 tps, lat 0.642 ms stddev 0.356 progress: 10.0 s, 103763.0 tps, lat 0.616 ms stddev 0.329 ... progress: 115.0 s, 77432.4 tps, lat 0.826 ms stddev 0.944 progress: 120.0 s, 76938.1 tps, lat 0.831 ms stddev 0.969 transaction type: <builtin: TPC-B (sort of)> scaling factor: 5000 query mode: prepared number of clients: 64 number of threads: 64 duration: 120 s number of transactions actually processed: 10918449 latency average = 0.703 ms latency stddev = 0.715 ms tps = 90955.989655 (including connections establishing) tps = 90968.635488 (excluding connections establishing) 2ой запуск: root@hz:~# pgbench -U postgres -j 64 -c 64 -M prepared -T 120 -v -P 5 pgbench starting vacuum...end. starting vacuum pgbench_accounts...end. progress: 5.0 s, 83469.3 tps, lat 0.763 ms stddev 2.892 progress: 10.0 s, 81950.7 tps, lat 0.781 ms stddev 1.098 ... progress: 115.0 s, 65336.5 tps, lat 0.979 ms stddev 1.274 progress: 120.0 s, 63531.5 tps, lat 1.007 ms stddev 1.205 transaction type: <builtin: TPC-B (sort of)> scaling factor: 5000 query mode: prepared number of clients: 64 number of threads: 64 duration: 120 s number of transactions actually processed: 9179268 latency average = 0.836 ms latency stddev = 1.254 ms tps = 76441.895492 (including connections establishing) tps = 76452.255102 (excluding connections establishing) 3ий запуск: root@hz:~# pgbench -U postgres -j 64 -c 64 -M prepared -T 120 -v -P 5 pgbench starting vacuum...end. starting vacuum pgbench_accounts...end. progress: 5.0 s, 85831.7 tps, lat 0.742 ms stddev 2.878 progress: 10.0 s, 84078.6 tps, lat 0.761 ms stddev 0.943 ... progress: 115.0 s, 63551.7 tps, lat 1.006 ms stddev 1.564 progress: 120.0 s, 63052.5 tps, lat 1.014 ms stddev 1.944 transaction type: <builtin: TPC-B (sort of)> scaling factor: 5000 query mode: prepared number of clients: 64 number of threads: 64 duration: 120 s number of transactions actually processed: 9308136 latency average = 0.824 ms latency stddev = 1.427 ms tps = 77545.030401 (including connections establishing) tps = 77555.017145 (excluding connections establishing) думаю что где-то плюсом 30-50% можно получить прирост на TPC-B. Насколько это ускорит работу именно с 1С - не знаю)
А может отключить только synchronous_commit и повторить тест?
отключён только synchronous_commit: root@hz:~# pgbench -U postgres -j 64 -c 64 -M prepared -T 120 -v -P 5 pgbench starting vacuum...end. starting vacuum pgbench_accounts...end. progress: 5.0 s, 67507.0 tps, lat 0.942 ms stddev 0.804 progress: 10.0 s, 68953.3 tps, lat 0.928 ms stddev 0.810 progress: 15.0 s, 70500.0 tps, lat 0.907 ms stddev 0.990 progress: 20.0 s, 72560.3 tps, lat 0.882 ms stddev 0.520 progress: 25.0 s, 71273.5 tps, lat 0.897 ms stddev 1.731 progress: 30.0 s, 73685.1 tps, lat 0.868 ms stddev 0.619 progress: 35.0 s, 64655.7 tps, lat 0.990 ms stddev 7.564 progress: 40.0 s, 57815.9 tps, lat 1.106 ms stddev 15.720 progress: 45.0 s, 67637.4 tps, lat 0.870 ms stddev 2.782 progress: 50.0 s, 70515.1 tps, lat 0.980 ms stddev 8.681 progress: 55.0 s, 74726.8 tps, lat 0.856 ms stddev 2.056 progress: 60.0 s, 71599.7 tps, lat 0.835 ms stddev 1.642 progress: 65.0 s, 67775.3 tps, lat 1.005 ms stddev 10.574 progress: 70.0 s, 78462.3 tps, lat 0.815 ms stddev 0.487 progress: 75.0 s, 78793.2 tps, lat 0.812 ms stddev 0.492 progress: 80.0 s, 79057.9 tps, lat 0.809 ms stddev 0.499 progress: 85.0 s, 79395.8 tps, lat 0.806 ms stddev 0.445 progress: 90.0 s, 79234.6 tps, lat 0.807 ms stddev 0.472 progress: 95.0 s, 79688.1 tps, lat 0.803 ms stddev 0.503 progress: 100.0 s, 79519.7 tps, lat 0.804 ms stddev 0.474 progress: 105.0 s, 71389.1 tps, lat 0.848 ms stddev 1.403 progress: 110.0 s, 58309.7 tps, lat 1.156 ms stddev 9.281 progress: 115.0 s, 62800.2 tps, lat 1.019 ms stddev 1.581 progress: 120.0 s, 61198.0 tps, lat 1.045 ms stddev 1.455 transaction type: <builtin: TPC-B (sort of)> scaling factor: 5000 query mode: prepared number of clients: 64 number of threads: 64 duration: 120 s number of transactions actually processed: 8535358 latency average = 0.899 ms latency stddev = 4.714 ms tps = 71109.300340 (including connections establishing) tps = 71125.651468 (excluding connections establishing) второй запуск: root@hz:~# pgbench -U postgres -j 64 -c 64 -M prepared -T 120 -v -P 5 pgbench starting vacuum...end. starting vacuum pgbench_accounts...end. progress: 5.0 s, 72677.4 tps, lat 0.875 ms stddev 2.067 progress: 10.0 s, 69826.6 tps, lat 0.916 ms stddev 1.017 progress: 15.0 s, 70417.6 tps, lat 0.908 ms stddev 1.107 progress: 20.0 s, 70908.9 tps, lat 0.902 ms stddev 1.057 progress: 25.0 s, 74519.4 tps, lat 0.858 ms stddev 0.933 progress: 30.0 s, 73033.5 tps, lat 0.876 ms stddev 1.110 progress: 35.0 s, 75679.9 tps, lat 0.845 ms stddev 0.945 progress: 40.0 s, 73460.8 tps, lat 0.871 ms stddev 1.028 progress: 45.0 s, 74932.6 tps, lat 0.854 ms stddev 0.903 progress: 50.0 s, 77001.5 tps, lat 0.831 ms stddev 1.075 progress: 55.0 s, 77390.7 tps, lat 0.826 ms stddev 1.191 progress: 60.0 s, 76810.3 tps, lat 0.833 ms stddev 1.056 progress: 65.0 s, 74802.3 tps, lat 0.855 ms stddev 1.204 progress: 70.0 s, 76949.2 tps, lat 0.831 ms stddev 1.103 progress: 75.0 s, 73885.5 tps, lat 0.866 ms stddev 1.253 progress: 80.0 s, 75769.5 tps, lat 0.844 ms stddev 1.371 progress: 85.0 s, 72456.9 tps, lat 0.883 ms stddev 1.614 progress: 90.0 s, 73065.8 tps, lat 0.875 ms stddev 1.713 progress: 95.0 s, 72008.9 tps, lat 0.888 ms stddev 2.038 progress: 100.0 s, 71447.0 tps, lat 0.895 ms stddev 1.269 progress: 105.0 s, 67414.3 tps, lat 0.949 ms stddev 2.410 progress: 110.0 s, 63471.8 tps, lat 1.007 ms stddev 1.929 progress: 115.0 s, 60871.5 tps, lat 1.052 ms stddev 2.188 progress: 120.0 s, 59715.3 tps, lat 1.071 ms stddev 2.130 transaction type: <builtin: TPC-B (sort of)> scaling factor: 5000 query mode: prepared number of clients: 64 number of threads: 64 duration: 120 s number of transactions actually processed: 8642665 latency average = 0.888 ms latency stddev = 1.457 ms tps = 72007.886348 (including connections establishing) tps = 72023.010271 (excluding connections establishing)
Спасибо за тесты. Какой вывод делаем?
отключение full_page_writes и synchronous_commit увеличивают производительность при изменяющих операциях.
Нескромный вопрос - какие процессоры, частота памяти, что за nvme?
ох.... "давно" же это было. Судя по датам - тогда тестировался сервер на EPYC. вот эта модель: https://www.hetzner.com/dedicated-rootserver/ax161 диски для него были Samsung PM983 на 1.9Tb если не ошибаюсь(RAID-10 из 4х таких дисков). В какой-то момент в пул были добавлены оптаны (905p) (но не помню выкладывал ли тестирование с учётом оптана) но в целом на той тачке удалось выжать 1.3KK на -S, и ~100k на полноценном TPC-B
Спасибо. А то прям все опустилось с расстройства. :-)
Так это было просто тестирование? На чем остановились в рабочей конфигурации?
Это была нагрузочное тестирование с целью определить что можно выжать из бареметалл по сравнению с виртуальной машиной в gcp. По итогу - остались на виртуальной машине (ессно с более слабыми показателями). Так как остальные сервисы находятся в GCP и их вынос невозможен. А вынос только СУБД не имеет смысла, сетевые задержки съедают всю выгоду
Обсуждают сегодня