Tests
Suites
Latest Results
Search
Register
Login
Popular Tests
Timed Linux Kernel Compilation
Blender
7-Zip Compression
SVT-AV1
FFmpeg
Newest Tests
OpenVINO GenAI
Rustls
LiteRT
WarpX
Epoch
Valkey
Recently Updated Tests
RELION
Llama.cpp
OpenVINO
Renaissance
Blender
vkpeak
New & Recently Updated Tests
Recently Updated Suites
Machine Learning
Server Motherboard
HPC - High Performance Computing
New & Recently Updated Suites
Component Benchmarks
CPUs / Processors
GPUs / Graphics
OpenGL
Disks / Storage
Motherboards
File-Systems
Operating Systems
OpenBenchmarking.org
Corporate / Organization Info
Bug Reports / Feature Requests
PostgreSQL pgbench 1.8.4
pts/pgbench-1.8.4
- 25 March 2018 -
Fix the bundled patch allowing PostgreSQL to run as root.
downloads.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v8.0.0m2--> <PhoronixTestSuite> <Downloads> <Package> <URL>http://ftp.postgresql.org/pub/source/v10.3/postgresql-10.3.tar.bz2</URL> <MD5>506498796a314c549388cafb3d5c717a</MD5> <SHA256>6ea268780ee35e88c65cdb0af7955ad90b7d0ef34573867f223f14e43467931a</SHA256> <FileSize>19959653</FileSize> <PlatformSpecific>Linux, BSD, Solaris, MacOSX</PlatformSpecific> </Package> <Package> <URL>http://get.enterprisedb.com/postgresql/postgresql-10.3-1-windows-x64-binaries.zip</URL> <MD5>b2ccc4845f4691c58d3c86f9e60c11cf</MD5> <SHA256>9e5cc5c4d8d368042f5e3ad3a2e8a530a8d9ae9e61354ff3dece6462eccfac00</SHA256> <FileSize>198127421</FileSize> <PlatformSpecific>Windows</PlatformSpecific> </Package> </Downloads> </PhoronixTestSuite>
install.sh
#!/bin/sh version=10.3 tar -xjf postgresql-${version}.tar.bz2 rm -rf $HOME/pg_ mkdir -p $HOME/pg_/data/postgresql/extension/ touch $HOME/pg_/data/postgresql/extension/plpgsql.control # Junk up the root checking code so test profiles can easily run as root patch -p0 <<'EOF' diff -ur postgresql-10.3.orig/src/backend/main/main.c postgresql-10.3/src/backend/main/main.c --- postgresql-10.3.orig/src/backend/main/main.c 2018-02-26 22:10:47.000000000 +0000 +++ postgresql-10.3/src/backend/main/main.c 2018-03-22 21:57:44.050950561 +0000 @@ -385,7 +385,7 @@ static void check_root(const char *progname) { -#ifndef WIN32 +#ifdef defined(WIN32) && !defined(WIN32) if (geteuid() == 0) { write_stderr("\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -409,7 +409,6 @@ progname); exit(1); } -#else /* WIN32 */ if (pgwin32_is_admin()) { write_stderr("Execution of PostgreSQL by a user with administrative permissions is not\n" diff -ur postgresql-10.3.orig/src/bin/initdb/initdb.c postgresql-10.3/src/bin/initdb/initdb.c --- postgresql-10.3.orig/src/bin/initdb/initdb.c 2018-02-26 22:10:47.000000000 +0000 +++ postgresql-10.3/src/bin/initdb/initdb.c 2018-03-22 21:54:09.900940349 +0000 @@ -606,7 +606,7 @@ { const char *username; -#ifndef WIN32 +#ifdef defined(WIN32) && !defined(WIN32) if (geteuid() == 0) /* 0 is root's uid */ { fprintf(stderr, diff -ur postgresql-10.3.orig/src/bin/pg_ctl/pg_ctl.c postgresql-10.3/src/bin/pg_ctl/pg_ctl.c --- postgresql-10.3.orig/src/bin/pg_ctl/pg_ctl.c 2018-02-26 22:10:47.000000000 +0000 +++ postgresql-10.3/src/bin/pg_ctl/pg_ctl.c 2018-03-22 21:57:02.145948563 +0000 @@ -2138,7 +2138,7 @@ /* * Disallow running as root, to forestall any possible security holes. */ -#ifndef WIN32 +#ifdef defined(WIN32) && !defined(WIN32) if (geteuid() == 0) { write_stderr(_("%s: cannot be run as root\n" diff -ur postgresql-10.3.orig/src/bin/pg_upgrade/option.c postgresql-10.3/src/bin/pg_upgrade/option.c --- postgresql-10.3.orig/src/bin/pg_upgrade/option.c 2018-02-26 22:10:47.000000000 +0000 +++ postgresql-10.3/src/bin/pg_upgrade/option.c 2018-03-22 21:53:00.473937039 +0000 @@ -94,8 +94,8 @@ } /* Allow help and version to be run as root, so do the test here. */ - if (os_user_effective_id == 0) - pg_fatal("%s: cannot be run as root\n", os_info.progname); + /* if (os_user_effective_id == 0) */ + /* pg_fatal("%s: cannot be run as root\n", os_info.progname); */ if ((log_opts.internal = fopen_priv(INTERNAL_LOG_FILE, "a")) == NULL) pg_fatal("could not write to log file \"%s\"\n", INTERNAL_LOG_FILE); EOF cd postgresql-${version} ./configure --prefix=$HOME/pg_ --without-readline --without-zlib make -j $NUM_CPU_JOBS make -C contrib/pgbench all # echo $? > ~/install-exit-status make install make -C contrib/pgbench install cd ~ rm -rf postgresql-${version}/ rm -rf pg_/doc/ # initialize database with encoding and locale $HOME/pg_/bin/initdb -D $HOME/pg_/data/db --encoding=SQL_ASCII --locale=C echo "#!/bin/sh PGDATA=\$HOME/pg_/data/db/ PGPORT=7777 export PGDATA export PGPORT # start server pg_/bin/pg_ctl start -o '-c autovacuum=false' # wait for server to start sleep 10 # create test db pg_/bin/createdb pgbench # set up tables case \$1 in \"BUFFER_TEST\") SCALING_FACTOR=\`echo \"\$SYS_MEMORY * 0.003\" | bc\` ;; \"MOSTLY_CACHE\") SCALING_FACTOR=\`echo \"\$SYS_MEMORY * 0.2\" | bc\` ;; \"ON_DISK\") SCALING_FACTOR=\`echo \"\$SYS_MEMORY * 0.6\" | bc\` ;; esac pg_/bin/pgbench -i -s \$SCALING_FACTOR pgbench case \$2 in \"SINGLE_THREAD\") PGBENCH_ARGS=\"-c 1\" ;; \"NORMAL_LOAD\") PGBENCH_ARGS=\"-j \$NUM_CPU_CORES -c \$((\$NUM_CPU_CORES*4))\" ;; \"HEAVY_CONTENTION\") PGBENCH_ARGS=\"-j \$((\$NUM_CPU_CORES*2)) -c \$((\$NUM_CPU_CORES*16))\" ;; esac case \$3 in \"READ_WRITE\") PGBENCH_MORE_ARGS=\"\" ;; \"READ_ONLY\") PGBENCH_MORE_ARGS=\"-S\" ;; esac # run the test pg_/bin/pgbench \$PGBENCH_ARGS \$PGBENCH_MORE_ARGS -T 60 pgbench >\$LOG_FILE 2>&1 # drop test db pg_/bin/dropdb pgbench # stop server pg_/bin/pg_ctl stop" > pgbench chmod +x pgbench
install_windows.sh
#!/bin/sh unzip -o postgresql-10.3-1-windows-x64-binaries.zip rm -rf $HOME/pg_ mkdir -p $HOME/pg_/data/postgresql/extension/ touch $HOME/pg_/data/postgresql/extension/plpgsql.control # initialize database with encoding and locale cd pgsql/bin ./initdb.exe -D $HOME/db --encoding=SQL_ASCII --locale=C cd ~ echo "If this test fails to run, you may need to manually install the Microsoft Visual C++ Redistributable package for MSVCR120.dll: https://www.microsoft.com/en-us/download/details.aspx?id=40784" > ~/install-message echo "#!/bin/sh PGDATA=\$HOME/db/ PGPORT=7777 export PGDATA mkdir db export PGPORT # start server ./pgsql/bin/pg_ctl.exe start -o '-c autovacuum=false' # wait for server to start sleep 10 # create test db ./pgsql/bin/createdb.exe pgbench # set up tables case \$1 in \"BUFFER_TEST\") SCALING_FACTOR=\`echo \"\$SYS_MEMORY * 0.003\" | bc\` ;; \"MOSTLY_CACHE\") SCALING_FACTOR=\`echo \"\$SYS_MEMORY * 0.2\" | bc\` ;; \"ON_DISK\") SCALING_FACTOR=\`echo \"\$SYS_MEMORY * 0.6\" | bc\` ;; esac ./pgsql/bin/pgbench.exe -i -s \$SCALING_FACTOR pgbench case \$2 in \"SINGLE_THREAD\") PGBENCH_ARGS=\"-c 1\" ;; \"NORMAL_LOAD\") PGBENCH_ARGS=\"-j \$NUM_CPU_CORES -c \$((\$NUM_CPU_CORES*4))\" ;; \"HEAVY_CONTENTION\") PGBENCH_ARGS=\"-j \$((\$NUM_CPU_CORES*2)) -c \$((\$NUM_CPU_CORES*16))\" ;; esac case \$3 in \"READ_WRITE\") PGBENCH_MORE_ARGS=\"\" ;; \"READ_ONLY\") PGBENCH_MORE_ARGS=\"-S\" ;; esac # run the test ./pgsql/bin/pgbench.exe \$PGBENCH_ARGS \$PGBENCH_MORE_ARGS -T 60 pgbench >\$LOG_FILE # drop test db ./pgsql/bin/dropdb.exe pgbench # stop server ./pgsql/bin/pg_ctl.exe stop" > pgbench chmod +x pgbench
results-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v8.0.0m2--> <PhoronixTestSuite> <ResultsParser> <OutputTemplate>tps = #_RESULT_# (excluding connections establishing) TPS</OutputTemplate> <LineHint>excluding connections establishing</LineHint> </ResultsParser> </PhoronixTestSuite>
test-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v8.0.0m2--> <PhoronixTestSuite> <TestInformation> <Title>PostgreSQL pgbench</Title> <AppVersion>10.3</AppVersion> <Description>This is a simple benchmark of PostgreSQL using pgbench.</Description> <ResultScale>TPS</ResultScale> <Proportion>HIB</Proportion> <Executable>pgbench</Executable> <TimesToRun>3</TimesToRun> </TestInformation> <TestProfile> <Version>1.8.4</Version> <SupportedPlatforms>Linux, MacOSX, BSD, Solaris, Windows</SupportedPlatforms> <SoftwareType>Benchmark</SoftwareType> <TestType>System</TestType> <License>Free</License> <Status>Verified</Status> <ExternalDependencies>build-utilities</ExternalDependencies> <EnvironmentSize>1000</EnvironmentSize> <ProjectURL>http://www.postgresql.org/</ProjectURL> <InternalTags>SMP</InternalTags> <Maintainer>Michael Larabel</Maintainer> </TestProfile> <TestSettings> <Option> <DisplayName>Scaling</DisplayName> <Identifier>scaling-factor</Identifier> <ArgumentPrefix></ArgumentPrefix> <ArgumentPostfix></ArgumentPostfix> <DefaultEntry>0</DefaultEntry> <Menu> <Entry> <Name>Buffer Test</Name> <Value>BUFFER_TEST</Value> <Message></Message> </Entry> <Entry> <Name>Mostly RAM</Name> <Value>MOSTLY_CACHE</Value> <Message></Message> </Entry> <Entry> <Name>On-Disk</Name> <Value>ON_DISK</Value> <Message></Message> </Entry> </Menu> </Option> <Option> <DisplayName>Test</DisplayName> <Identifier>run-test</Identifier> <ArgumentPrefix></ArgumentPrefix> <ArgumentPostfix></ArgumentPostfix> <DefaultEntry>0</DefaultEntry> <Menu> <Entry> <Name>Single Thread</Name> <Value>SINGLE_THREAD</Value> <Message></Message> </Entry> <Entry> <Name>Normal Load</Name> <Value>NORMAL_LOAD</Value> <Message></Message> </Entry> <Entry> <Name>Heavy Contention</Name> <Value>HEAVY_CONTENTION</Value> <Message></Message> </Entry> </Menu> </Option> <Option> <DisplayName>Mode</DisplayName> <Identifier>run-mode</Identifier> <ArgumentPrefix></ArgumentPrefix> <ArgumentPostfix></ArgumentPostfix> <DefaultEntry>0</DefaultEntry> <Menu> <Entry> <Name>Read Write</Name> <Value>READ_WRITE</Value> <Message></Message> </Entry> <Entry> <Name>Read Only</Name> <Value>READ_ONLY</Value> <Message></Message> </Entry> </Menu> </Option> </TestSettings> </PhoronixTestSuite>