jmeter + posgre SQL изоляция "read commit" в два раза меньше пропускной способности, чем "default" - PullRequest
0 голосов
/ 03 февраля 2020

Я сделал PostgreSQL дБ в docker и составил простой план тестирования JMeter для загрузки данных из дБ.

В JDB C Конфигурация соединения JMeter Я меняю уровень изоляции транзакции с DEFAULT на TRANSACTION_READ_COMMITTED.

В сводном отчете я последовательно вижу пропускную способность 3,3 тыс. При работе на DEFAULT в конце 100 тыс. Транзакций в 4-х потоках и 1,8 тыс. При работе на TRANSACTION_READ_COMMITTED.

Почему при TRANSACTION_READ_COMMITTED пропускная способность в два раза меньше?

https://www.postgresql.org/docs/current/transaction-iso.html:

В PostgreSQL можно запросить любой из четырех стандартных уровней изоляции транзакции. Но внутри есть только три отдельных уровня изоляции, которые соответствуют уровням Read Committed, Repeatable Read и Serializable. Когда вы выбираете уровень Read Uncommitted, вы действительно получаете Read Committed ... Read Committed - уровень изоляции по умолчанию в PostgreSQL.

TRANSACTION_READ_UNCOMMITTED в JMeter приводит к той же величине пропускной способности, что и TRANSACTION_READ_COMMITTED любое значение, отличное от DEFAULT, приводит к значительно меньшей пропускной способности, чем DEFAULT.

1 Ответ

0 голосов
/ 03 февраля 2020

Иерархия уровней изоляции выглядит следующим образом:

  1. Сериализуемый - самый высокий уровень изоляции, запросы будут самыми медленными, так как никакие другие транзакции не могут работать с набором данных в данный момент, они будут в очереди
  2. Повторяемые чтения
  3. Чтение зафиксировано
  4. Чтение незафиксировано - самый низкий уровень изоляции, запросы будут самыми быстрыми

Согласно Postgres 9.5 документация :

Read Committed - уровень изоляции по умолчанию в PostgreSQL.

Я не знаю особенностей вашего приложения и набора данных базы данных, но конфигурация JMeter JDB C должна соответствовать конфигурации базы данных вашего приложения, поскольку выбор другого уровня изоляции может привести к ложноположительным результатам.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...