GoogleCloudPlatform / PerfKitBenchmarker

PerfKit Benchmarker (PKB) contains a set of benchmarks to measure and compare cloud offerings. The benchmarks use default settings to reflect what most users will see. PerfKit Benchmarker is licensed under the Apache 2 license terms. Please make sure to read, understand and agree to the terms of the LICENSE and CONTRIBUTING files before proceeding.
https://googlecloudplatform.github.io/PerfKitBenchmarker/
Apache License 2.0
1.91k stars 516 forks source link

Cassandra_stress and Redis use more VMs than requested machine_type #1016

Open GitVail opened 8 years ago

GitVail commented 8 years ago

Running cassandra_stress or redis on a target with 4 VMs produces an error that CPUS are exceeded, limit 8. The limit 8 is because I using a GCS trial which limits to 8. But in any case the benchmark is using more VMs than is configured for the test run. I ran cassandra_stress and redis successfully on a GCS 1 VM systems, but they fail on 4 and 8.

hildrum commented 8 years ago

cassandra_stress doesn't use the the num_vms flag. It always uses four VMs. The redis benchmark uses redis_clients + 1 VMs.

You should be able to run either benchmark on n1-standard-1s (total cores of 4 for cassandra_stress and 6 for redis in the default configuration), but you won't have enough cores to run them with n1-standard-4s (total cores of 16 and 24) or n1-standard-8s (total cores of 32 and 48).

GitVail commented 8 years ago

Hi Kris Thanks for the reply. Your info explains why I can't run some benchmarks on some machines, but I don't know where this is documented or how to figure it out. I am new to the server and vm world. When I look at the google info showing machine types, the n1-standard-1 supplies 1 vCPU or VM. I've read that typically 1 physical core would support 4 VMs. Where is it documented that for this benchmark case 1 VM allocates or consumes 4 physical cores? Best Regards, -Dick

From: Kris Hildrum [mailto:notifications@github.com] Sent: Thursday, June 16, 2016 5:58 PM To: GoogleCloudPlatform/PerfKitBenchmarker PerfKitBenchmarker@noreply.github.com Cc: Vail, Richard Richard.Vail@amd.com; Author author@noreply.github.com Subject: Re: [GoogleCloudPlatform/PerfKitBenchmarker] Cassandra_stress and Redis use more VMs than requested machine_type (#1016)

cassandra_stress doesn't use the the num_vms flag. It always uses four VMs. The redis benchmark uses redis_clients + 1 VMs.

You should be able to run either benchmark on n1-standard-1s (total cores of 4 for cassandra_stress and 6 for redis in the default configuration), but you won't have enough cores to run them with n1-standard-4s (total cores of 16 and 24) or n1-standard-8s (total cores of 32 and 48).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/GoogleCloudPlatform/PerfKitBenchmarker/issues/1016#issuecomment-226637609, or mute the threadhttps://github.com/notifications/unsubscribe/ATA2xMh8sDYE9o8pqRKY9GCbp3kPLEkDks5qMdT5gaJpZM4I1tJM.

hildrum commented 8 years ago

The mapping between machine types and number of cores is on this page. An n1-standard-k machine type has k virtual cores.

The benchmarks allocate a certain number of VMs. How many cores total the benchmark uses depends on the machine type you use. The number of virtual cores you'll need is: num_VMs * num_cores_per_VM, where num_cores_per_VM depends on the machine type as in the web page above.

Google's accounting is based on the number of virtual cores. The number of physical cores doesn't need to be part of the calculation at all.

Some benchmarks use a fixed number of VMs, some use a variable number. You'd have to look at each benchmark to determine that.

voellm commented 8 years ago

Is there more to answer here or is this ok to close?