воскресенье, 24 марта 2019 г.

Тест pgbench PostgreSQL Windows vs PostgreSQL Linux

Windows
Посмотреть список баз:
"c:\Program Files\PostgreSQL\10.5-24.1C\bin\psql" -U postgres -c "\l"

"c:\Program Files\PostgreSQL\10.5-24.1C\bin\psql" -U postgres  -c "CREATE DATABASE example"

> "c:\Program Files\PostgreSQL\10.5-24.1C\bin\psql" -U postgres  -c "CREATE DATABASE example"
Password for user postgres:
CREATE DATABASE


"c:\Program Files\PostgreSQL\10.5-24.1C\bin\pgbench" -U postgres -i -s 500 example

Опция -i(initialize) скажет pgbench инициализировать указанную базу данных.
По умолчанию pgbench будут созданы таблицы выше с количеством строк, показанных выше. Это создает простую 16MBбазу данных.
Так как мы будем использовать pgbenchдля измерения изменений в производительности, небольшой 16MB базы данных будет недостаточно, чтобы подчеркнуть наш экземпляр. Это где -s(масштабирование) опция вступает в игру.

-sОпция используется для умножения числа строк , введенных в каждую таблицу. В приведенной выше команде мы ввели параметр «масштабирования» 500. Это говорит pgbenchо создании базы данных в 500 раз больше размера по умолчанию.

Это означает, что в нашей pgbench_accountsтаблице теперь есть 50000000 записи. Это также означает, что размер нашей базы данных теперь 8 GB( 500 x 16MB).


Посмотреть размер базы example:

"c:\Program Files\PostgreSQL\10.5-24.1C\bin\psql" -U postgres -d example -c "select pg_size_pretty( pg_database_size('example')) postgres

>"c:\Program Files\PostgreSQL\10.5-24.1C\bin\psql" -U postgres -d example -c "select pg_size_pretty( pg_database_size('example')) postgres
Password for user postgres:
 postgres
----------
 7484 MB
(1 row)


"c:\Program Files\PostgreSQL\10.5-24.1C\bin\pgbench" -U postgres  -c 10 -j 10 -t 10000 example

При вызове pgbench мы добавляем в команду довольно много опций.
Первый - -c (клиенты), который используется для определения количества клиентов, с которыми необходимо связаться. Для этого испытания, я использовал , 10 чтобы сказать , pgbench чтобы выполнить с 10 клиентами.

Это означает, что при pgbench выполнении тестов открывается 10 разных сессий.
Следующий параметр - -j флаг (потоки). Этот флаг используется для определения количества рабочих процессов для pgbench. В приведенной выше команде я указал значение 10. Это скажет pgbench запустить 10 рабочих процесса во время бенчмаркинга.

Третий используемый вариант - -t(транзакции), который используется для указания количества транзакций для выполнения.
В приведенной выше команде я указал значение 10000. Однако это не означает, что 10000с нашей службой базы данных будут выполняться только транзакции. Это означает, что каждый сеанс клиента будет выполнять 10000 транзакции. Подводя итог, можно сказать, что базовый тестовый запуск состоял из двух pgbench рабочих процессов, имитирующих 10000 транзакции от 10 клиентов для общего количества 100000 транзакций.


>"c:\Program Files\PostgreSQL\10.5-24.1C\bin\pgbench" -U postgres  -c 10 -j 10 -t 10000 example
Password:
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 500
query mode: simple
number of clients: 10
number of threads: 10
number of transactions per client: 10000
number of transactions actually processed: 100000/100000
latency average = 3.133 ms
tps = 3191.871025 (including connections establishing)
tps = 3278.326360 (excluding connections establishing)

Для Linux:
Настройка PostgreSQL с помощью pgbench
 

Комментариев нет:

Отправить комментарий