From 867aede71516756ff0ec1dba540fe7fc23bb7113 Mon Sep 17 00:00:00 2001 From: bojanserafimov Date: Fri, 22 Apr 2022 10:45:47 -0400 Subject: [PATCH] Add idle compute restart time test (#1514) --- test_runner/performance/test_startup.py | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 test_runner/performance/test_startup.py diff --git a/test_runner/performance/test_startup.py b/test_runner/performance/test_startup.py new file mode 100644 index 0000000000..e30912ce32 --- /dev/null +++ b/test_runner/performance/test_startup.py @@ -0,0 +1,48 @@ +from contextlib import closing + +from fixtures.zenith_fixtures import ZenithEnvBuilder +from fixtures.benchmark_fixture import ZenithBenchmarker + + +def test_startup(zenith_env_builder: ZenithEnvBuilder, zenbenchmark: ZenithBenchmarker): + zenith_env_builder.num_safekeepers = 3 + env = zenith_env_builder.init_start() + + # Start + env.zenith_cli.create_branch('test_startup') + with zenbenchmark.record_duration("startup_time"): + pg = env.postgres.create_start('test_startup') + pg.safe_psql("select 1;") + + # Restart + pg.stop_and_destroy() + with zenbenchmark.record_duration("restart_time"): + pg.create_start('test_startup') + pg.safe_psql("select 1;") + + # Fill up + num_rows = 1000000 # 30 MB + num_tables = 100 + with closing(pg.connect()) as conn: + with conn.cursor() as cur: + for i in range(num_tables): + cur.execute(f'create table t_{i} (i integer);') + cur.execute(f'insert into t_{i} values (generate_series(1,{num_rows}));') + + # Read + with zenbenchmark.record_duration("read_time"): + pg.safe_psql("select * from t_0;") + + # Read again + with zenbenchmark.record_duration("second_read_time"): + pg.safe_psql("select * from t_0;") + + # Restart + pg.stop_and_destroy() + with zenbenchmark.record_duration("restart_with_data"): + pg.create_start('test_startup') + pg.safe_psql("select 1;") + + # Read + with zenbenchmark.record_duration("read_after_restart"): + pg.safe_psql("select * from t_0;")