MySQL 5.4 Sysbench Scalability on 64-way CMT Servers
The Sysbench version used was 0.4.8, and the read-only runs were invoked with the following command:
sysbench --max-time=300 --max-requests=0 --test=oltp --oltp-dist-type=special --oltp-table-size=10000000 \ --oltp-read-only=on --num-threads=[NO_THREADS] runThe "oltp-read-only=on" parameter was omitted for the read-write tests. The my.cnf file listed in my previous blog was also used unchanged for these tests.
Here is the data presented graphically. Note that the number of vCPUs is the same as the number of active threads up to 64. Active threads beyond 64 are using only 64 vCPUs.
And here is some raw data:
Read-only
| User Threads | Txns/sec | User | System | Idle |
|---|---|---|---|---|
| 1 | 73.06 | 69 | 31 | 0 |
| 8 | 436.23 | 84 | 16 | 0 |
| 16 | 855.64 | 83 | 16 | 0 |
| 32 | 1674.69 | 83 | 17 | 0 |
| 48 | 2402.12 | 82 | 17 | 1 |
| 64 | 2727.45 | 70 | 19 | 11 |
| 80 | 2524.69 | 64 | 19 | 16 |
| 96 | 2491.10 | 27 | 18 | 56 |
| 128 | 2131.09 | 22 | 14 | 64 |
Read-write
| User Threads | Txns/sec | User | System | Idle |
|---|---|---|---|---|
| 1 | 41.89 | 49 | 30 | 21 |
| 8 | 269.62 | 62 | 15 | 23 |
| 16 | 486.14 | 58 | 13 | 29 |
| 32 | 867.88 | 54 | 12 | 34 |
| 48 | 1121.87 | 49 | 12 | 39 |
| 64 | 1453.00 | 48 | 14 | 38 |
| 80 | 1509.09 | 49 | 15 | 36 |
| 96 | 1612.11 | 54 | 18 | 29 |
| 128 | 1595.75 | 52 | 18 | 30 |
A few observations:
- Throughput scales 63% from 32-way to 64-way for read-only and 67% for read-write. Not quite as good as for the OLTP test reported in my earlier blog, but not at all bad.
- Beyond 48 vCPUs, idle CPU is preventing optimal scaling for the read-only test.
- There's quite a bit of CPU left on the table for the read-write tests.
Allan