SSD Storage

Benchmarks for a future article. AMD EPYC 8534P 64-Core testing with a AMD Cinnabar (RCB1009C BIOS) and ASPEED on Ubuntu 23.10 via the Phoronix Test Suite.

Compare your own system(s) to this result file with the Phoronix Test Suite by running the command: phoronix-test-suite benchmark 2403268-NE-SSDSTORAG25
Jump To Table - Results

View

Do Not Show Noisy Results
Do Not Show Results With Incomplete Data
Do Not Show Results With Little Change/Spread
List Notable Results
Show Result Confidence Charts
Allow Limiting Results To Certain Suite(s)

Statistics

Show Overall Harmonic Mean(s)
Show Overall Geometric Mean
Show Wins / Losses Counts (Pie Chart)
Normalize Results
Remove Outliers Before Calculating Averages

Graph Settings

Force Line Graphs Where Applicable
Convert To Scalar Where Applicable
Prefer Vertical Bar Graphs

Multi-Way Comparison

Condense Multi-Option Tests Into Single Result Graphs

Table

Show Detailed System Result Table

Run Management

Highlight
Result
Toggle/Hide
Result
Result
Identifier
View Logs
Performance Per
Dollar
Date
Run
  Test
  Duration
Micron 7450 Max 3.2TB
March 21
  2 Hours, 35 Minutes
Corsair MP700 PRO 2TB
March 22
  3 Hours, 31 Minutes
Crucial T705 2TB
March 22
  4 Hours, 20 Minutes
Corsair MP700 2TB
March 23
  18 Hours, 51 Minutes
Invert Behavior (Only Show Selected Data)
  7 Hours, 19 Minutes

Only show results where is faster than
Only show results matching title/arguments (delimit multiple options with a comma):
Do not show results matching title/arguments (delimit multiple options with a comma):


SSD StorageOpenBenchmarking.orgPhoronix Test SuiteAMD EPYC 8534P 64-Core @ 2.30GHz (64 Cores / 128 Threads)AMD Cinnabar (RCB1009C BIOS)AMD Device 14a46 x 32GB DRAM-4800MT/s Samsung M321R4GA0BB0-CQKMG3201GB Micron_7450_MTFDKCB3T2TFS3201GB Micron_7450_MTFDKCB3T2TFS + 2000GB Corsair MP700 PRO3201GB Micron_7450_MTFDKCB3T2TFS + 2000GB CT2000T705SSD53201GB Micron_7450_MTFDKCB3T2TFS + 2000GB Corsair MP700ASPEED2 x Broadcom NetXtreme BCM5720 PCIeUbuntu 23.106.8.1-060801-generic (x86_64)GNOME Shell 45.2X Server 1.21.1.7GCC 13.2.0ext41920x1200ProcessorMotherboardChipsetMemoryDisksGraphicsNetworkOSKernelDesktopDisplay ServerCompilerFile-SystemScreen ResolutionSSD Storage BenchmarksSystem Logs- Transparent Huge Pages: madvise- --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-bootstrap --enable-cet --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --enable-libphobos-checking=release --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-link-serialization=2 --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-defaulted --enable-offload-targets=nvptx-none=/build/gcc-13-XYspKM/gcc-13-13.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-XYspKM/gcc-13-13.2.0/debian/tmp-gcn/usr --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-build-config=bootstrap-lto-lean --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib=auto --with-tune=generic --without-cuda-driver -v - Micron 7450 Max 3.2TB: NONE / relatime,rw,stripe=64 / Block Size: 4096- Corsair MP700 PRO 2TB: NONE / relatime,rw / Block Size: 4096- Crucial T705 2TB: NONE / relatime,rw / Block Size: 4096- Corsair MP700 2TB: NONE / relatime,rw / Block Size: 4096- Scaling Governor: acpi-cpufreq performance (Boost: Enabled) - CPU Microcode: 0xaa00212 - OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu223.10.1)- Micron 7450 Max 3.2TB: Python 3.11.6- gather_data_sampling: Not affected + itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + mmio_stale_data: Not affected + reg_file_data_sampling: Not affected + retbleed: Not affected + spec_rstack_overflow: Mitigation of Safe RET + spec_store_bypass: Mitigation of SSB disabled via prctl + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Enhanced / Automatic IBRS IBPB: conditional STIBP: always-on RSB filling PBRSB-eIBRS: Not affected + srbds: Not affected + tsx_async_abort: Not affected

Micron 7450 Max 3.2TBCorsair MP700 PRO 2TBCrucial T705 2TBCorsair MP700 2TBLogarithmic Result OverviewPhoronix Test SuiteFlexible IO TesterSQLitePostgreSQLCockroachDBClickHouseApache Cassandra

SSD Storagecassandra: Writesclickhouse: 100M Rows Hits Dataset, First Run / Cold Cacheclickhouse: 100M Rows Hits Dataset, Second Runclickhouse: 100M Rows Hits Dataset, Third Runcockroach: KV, 50% Reads - 256cockroach: KV, 60% Reads - 256cockroach: KV, 95% Reads - 256fio: Seq Read - IO_uring - Yes - 2MB - 64 - Default Test Directoryfio: Seq Write - IO_uring - Yes - 2MB - 1 - Default Test Directoryfio: Seq Write - IO_uring - Yes - 2MB - 16 - Default Test Directoryfio: Seq Read - IO_uring - Yes - 2MB - 64 - Default Test Directoryfio: Seq Write - IO_uring - Yes - 2MB - 1 - Default Test Directoryfio: Seq Write - IO_uring - Yes - 2MB - 16 - Default Test Directorymariadb: oltp_read_only - 128mariadb: oltp_read_write - 128mariadb: oltp_write_only - 128mariadb: oltp_point_select - 128mariadb: oltp_update_index - 128mariadb: oltp_update_non_index - 128mysqlslap: 32mysqlslap: 64mysqlslap: 128mysqlslap: 256mysqlslap: 512mysqlslap: 1024mysqlslap: 2048mysqlslap: 4096pgbench: 1000 - 1000 - Read Writepgbench: 1000 - 1000 - Read Write - Average Latencysqlite: 1sqlite: 8sqlite: 16Micron 7450 Max 3.2TBCorsair MP700 PRO 2TBCrucial T705 2TBCorsair MP700 2TB252621329.86336.49329.19101366.5107941.1125152.66549495249904104624.3652.2194.4157.454250721325.58335.80340.1785287.594295.7131402.13417337433412285943.86723.09392.752123.972252370328.03332.73338.1783953.092691.1131596.835621704112217808505592174746.17523.77387.676133.458250646320.33339.95330.6985748.492980.0130978.53432200410931715100054526294121314738023799151810383257645323341901014579812286843.90423.21293.244135.499OpenBenchmarking.org

Apache Cassandra

This is a benchmark of the Apache Cassandra NoSQL database management system making use of cassandra-stress. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgOp/s, More Is BetterApache Cassandra 4.1.3Test: WritesMicron 7450 Max 3.2TBCrucial T705 2TBCorsair MP700 PRO 2TBCorsair MP700 2TB50K100K150K200K250KSE +/- 1354.41, N = 3SE +/- 856.73, N = 3SE +/- 415.66, N = 3SE +/- 1156.33, N = 3252621252370250721250646

ClickHouse

ClickHouse is an open-source, high performance OLAP data management system. This test profile uses ClickHouse's standard benchmark recommendations per https://clickhouse.com/docs/en/operations/performance-test/ / https://github.com/ClickHouse/ClickBench/tree/main/clickhouse with the 100 million rows web analytics dataset. The reported value is the query processing time using the geometric mean of all separate queries performed as an aggregate. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgQueries Per Minute, Geo Mean, More Is BetterClickHouse 22.12.3.5100M Rows Hits Dataset, First Run / Cold CacheMicron 7450 Max 3.2TBCrucial T705 2TBCorsair MP700 PRO 2TBCorsair MP700 2TB70140210280350SE +/- 3.71, N = 3SE +/- 3.65, N = 4SE +/- 3.47, N = 5SE +/- 4.03, N = 3329.86328.03325.58320.33MIN: 38.34 / MAX: 5000MIN: 37.04 / MAX: 3529.41MIN: 37.81 / MAX: 4000MIN: 36.97 / MAX: 3333.33

OpenBenchmarking.orgQueries Per Minute, Geo Mean, More Is BetterClickHouse 22.12.3.5100M Rows Hits Dataset, Second RunCorsair MP700 2TBMicron 7450 Max 3.2TBCorsair MP700 PRO 2TBCrucial T705 2TB70140210280350SE +/- 3.15, N = 3SE +/- 3.46, N = 3SE +/- 2.74, N = 5SE +/- 4.87, N = 4339.95336.49335.80332.73MIN: 37.64 / MAX: 4000MIN: 37.9 / MAX: 3750MIN: 38.07 / MAX: 3750MIN: 38.17 / MAX: 3750

OpenBenchmarking.orgQueries Per Minute, Geo Mean, More Is BetterClickHouse 22.12.3.5100M Rows Hits Dataset, Third RunCorsair MP700 PRO 2TBCrucial T705 2TBCorsair MP700 2TBMicron 7450 Max 3.2TB70140210280350SE +/- 2.43, N = 5SE +/- 2.11, N = 4SE +/- 2.52, N = 3SE +/- 2.21, N = 3340.17338.17330.69329.19MIN: 38.27 / MAX: 4000MIN: 38.14 / MAX: 5454.55MIN: 37.5 / MAX: 3529.41MIN: 38.63 / MAX: 3000

CockroachDB

CockroachDB is a cloud-native, distributed SQL database for data intensive applications. This test profile uses a server-less CockroachDB configuration to test various Coackroach workloads on the local host with a single node. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgops/s, More Is BetterCockroachDB 22.2Workload: KV, 50% Reads - Concurrency: 256Micron 7450 Max 3.2TBCorsair MP700 2TBCorsair MP700 PRO 2TBCrucial T705 2TB20K40K60K80K100KSE +/- 1341.10, N = 15SE +/- 302.48, N = 3SE +/- 624.14, N = 3SE +/- 477.68, N = 3101366.585748.485287.583953.0

OpenBenchmarking.orgops/s, More Is BetterCockroachDB 22.2Workload: KV, 60% Reads - Concurrency: 256Micron 7450 Max 3.2TBCorsair MP700 PRO 2TBCorsair MP700 2TBCrucial T705 2TB20K40K60K80K100KSE +/- 1417.12, N = 15SE +/- 504.72, N = 3SE +/- 388.03, N = 3SE +/- 733.23, N = 3107941.194295.792980.092691.1

OpenBenchmarking.orgops/s, More Is BetterCockroachDB 22.2Workload: KV, 95% Reads - Concurrency: 256Crucial T705 2TBCorsair MP700 PRO 2TBCorsair MP700 2TBMicron 7450 Max 3.2TB30K60K90K120K150KSE +/- 88.84, N = 3SE +/- 1221.80, N = 3SE +/- 671.03, N = 3SE +/- 2278.37, N = 15131596.8131402.1130978.5125152.6

Flexible IO Tester

FIO, the Flexible I/O Tester, is an advanced Linux disk benchmark supporting multiple I/O engines and a wealth of options. FIO was written by Jens Axboe for testing of the Linux I/O subsystem and schedulers. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Sequential Read - Engine: IO_uring - Direct: Yes - Block Size: 2MB - Job Count: 64 - Disk Target: Default Test DirectoryMicron 7450 Max 3.2TBCrucial T705 2TBCorsair MP700 2TBCorsair MP700 PRO 2TB14002800420056007000SE +/- 9.45, N = 3SE +/- 1.45, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 365493562343234171. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - Engine: IO_uring - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test DirectoryMicron 7450 Max 3.2TBCorsair MP700 PRO 2TBCorsair MP700 2TBCrucial T705 2TB11002200330044005500SE +/- 6.74, N = 3SE +/- 0.33, N = 3SE +/- 171.84, N = 15SE +/- 130.58, N = 1549523374200417041. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - Engine: IO_uring - Direct: Yes - Block Size: 2MB - Job Count: 16 - Disk Target: Default Test DirectoryMicron 7450 Max 3.2TBCorsair MP700 PRO 2TBCrucial T705 2TBCorsair MP700 2TB11002200330044005500SE +/- 9.21, N = 3SE +/- 16.76, N = 3SE +/- 143.79, N = 13SE +/- 77.06, N = 1549903341112210931. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Sequential Read - Engine: IO_uring - Direct: Yes - Block Size: 2MB - Job Count: 64 - Disk Target: Default Test DirectoryCrucial T705 2TBCorsair MP700 2TB400800120016002000SE +/- 0.88, N = 3SE +/- 0.00, N = 3178017151. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - Engine: IO_uring - Direct: Yes - Block Size: 2MB - Job Count: 1 - Disk Target: Default Test DirectoryCorsair MP700 2TBCrucial T705 2TB2004006008001000SE +/- 85.95, N = 15SE +/- 65.28, N = 1510008501. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 3.36Type: Sequential Write - Engine: IO_uring - Direct: Yes - Block Size: 2MB - Job Count: 16 - Disk Target: Default Test DirectoryCrucial T705 2TBCorsair MP700 2TB120240360480600SE +/- 71.93, N = 13SE +/- 38.56, N = 155595451. (CC) gcc options: -rdynamic -ltcmalloc -ll -lnuma -lz -lm -laio -lpthread -ldl -lcurl -lssl -lcrypto -std=gnu99 -ffast-math -include -O3 -fcommon -march=native

MariaDB

This is a MariaDB MySQL database server benchmark making use of sysbench rather than the existing pts/mysqlslap test profile that uses MariaDB with mysqlslap/mariadb-slap as the benchmark driver. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB 11.5Test: oltp_read_only - Threads: 128Corsair MP700 2TB6K12K18K24K30KSE +/- 9.76, N = 3262941. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB 11.5Test: oltp_read_write - Threads: 128Corsair MP700 2TB30K60K90K120K150KSE +/- 173.52, N = 31213141. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB 11.5Test: oltp_write_only - Threads: 128Corsair MP700 2TB16K32K48K64K80KSE +/- 566.85, N = 3738021. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB 11.5Test: oltp_point_select - Threads: 128Corsair MP700 2TB8K16K24K32K40KSE +/- 24.16, N = 3379911. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB 11.5Test: oltp_update_index - Threads: 128Corsair MP700 2TB11K22K33K44K55KSE +/- 2315.37, N = 9518101. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB 11.5Test: oltp_update_non_index - Threads: 128Corsair MP700 2TB8K16K24K32K40KSE +/- 2550.78, N = 9383251. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

MariaDB mariadb-slap

This is a MariaDB MySQL database server benchmark making use of mysqlslap (mariadb-slap). Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 32Corsair MP700 2TB160320480640800SE +/- 0.39, N = 37641. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 64Corsair MP700 2TB120240360480600SE +/- 0.34, N = 35321. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 128Corsair MP700 2TB70140210280350SE +/- 0.04, N = 33341. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 256Corsair MP700 2TB4080120160200SE +/- 0.21, N = 31901. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 512Corsair MP700 2TB20406080100SE +/- 0.14, N = 31011. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 1024Corsair MP700 2TB1020304050SE +/- 0.53, N = 9451. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 2048Corsair MP700 2TB20406080100SE +/- 0.74, N = 9791. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

OpenBenchmarking.orgQueries Per Second, More Is BetterMariaDB mariadb-slap 11.5Clients: 4096Corsair MP700 2TB20406080100SE +/- 0.57, N = 3811. (CXX) g++ options: -fPIC -pie -fstack-protector -O3 -shared -lrt -lpthread -lz -ldl -lm -lstdc++

PostgreSQL

This is a benchmark of PostgreSQL using the integrated pgbench for facilitating the database benchmarks. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL 16Scaling Factor: 1000 - Clients: 1000 - Mode: Read WriteMicron 7450 Max 3.2TBCorsair MP700 2TBCorsair MP700 PRO 2TBCrucial T705 2TB9K18K27K36K45KSE +/- 310.04, N = 3SE +/- 446.86, N = 12SE +/- 371.60, N = 12SE +/- 448.34, N = 12410462286822859217471. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lm

OpenBenchmarking.orgms, Fewer Is BetterPostgreSQL 16Scaling Factor: 1000 - Clients: 1000 - Mode: Read Write - Average LatencyMicron 7450 Max 3.2TBCorsair MP700 PRO 2TBCorsair MP700 2TBCrucial T705 2TB1020304050SE +/- 0.18, N = 3SE +/- 0.68, N = 12SE +/- 0.82, N = 12SE +/- 0.85, N = 1224.3743.8743.9046.181. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lm

SQLite

This is a simple benchmark of SQLite. At present this test profile just measures the time to perform a pre-defined number of insertions on an indexed database with a variable number of concurrent repetitions -- up to the maximum number of CPU threads available. Learn more via the OpenBenchmarking.org test page.

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 1Micron 7450 Max 3.2TBCorsair MP700 PRO 2TBCorsair MP700 2TBCrucial T705 2TB612182430SE +/- 0.000, N = 3SE +/- 0.186, N = 3SE +/- 0.080, N = 3SE +/- 0.220, N = 32.21923.09323.21223.7731. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 8Micron 7450 Max 3.2TBCrucial T705 2TBCorsair MP700 PRO 2TBCorsair MP700 2TB20406080100SE +/- 0.036, N = 3SE +/- 0.737, N = 3SE +/- 0.843, N = 3SE +/- 0.864, N = 34.41587.67692.75293.2441. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.41.2Threads / Copies: 16Micron 7450 Max 3.2TBCorsair MP700 PRO 2TBCrucial T705 2TBCorsair MP700 2TB306090120150SE +/- 0.031, N = 3SE +/- 1.278, N = 12SE +/- 1.241, N = 3SE +/- 0.565, N = 37.454123.972133.458135.4991. (CC) gcc options: -O2 -lreadline -ltermcap -lz -lm