Skip to content

Commit 04387b3

Browse files
zeynepCankaracopybara-github
authored andcommitted
Implement GetNodePoolNames in AksCluster.
PiperOrigin-RevId: 803740871
1 parent 777ee45 commit 04387b3

26 files changed

Lines changed: 895 additions & 284 deletions

perfkitbenchmarker/benchmark_spec.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
from perfkitbenchmarker import providers
5555
from perfkitbenchmarker import relational_db
5656
from perfkitbenchmarker import resource as resource_type
57-
from perfkitbenchmarker import resources # pylint:disable=unused-import # Load the __init__.py
5857
from perfkitbenchmarker import smb_service
5958
from perfkitbenchmarker import stages
6059
from perfkitbenchmarker import static_virtual_machine as static_vm

perfkitbenchmarker/configs/benchmark_config_spec.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@
4040
from perfkitbenchmarker.configs import vm_group_decoders
4141
from perfkitbenchmarker.resources import example_resource_spec
4242
from perfkitbenchmarker.resources import jobs_setter
43-
# Included to import & load Kubernetes' __init__.py somewhere.
44-
from perfkitbenchmarker.resources import kubernetes # pylint:disable=unused-import
4543
from perfkitbenchmarker.resources import managed_ai_model_spec
4644
from perfkitbenchmarker.resources.pinecone import pinecone_resource_spec
4745
from perfkitbenchmarker.resources.vertex_vector_search import vvs_resource_spec

perfkitbenchmarker/configs/default_benchmark_config.yaml

Lines changed: 71 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -390,24 +390,6 @@ postgres_sysbench_tpcc:
390390
sysbench_scale: 100
391391
sysbench_use_fk: False
392392

393-
mongodb:
394-
name: mongodb_ycsb
395-
flags:
396-
mongodb_readahead_kb: 8
397-
iostat: True
398-
sar: True
399-
sar_interval: 1
400-
ycsb_fail_on_incomplete_loading: True
401-
ycsb_measurement_type: hdrhistogram
402-
ycsb_status: True
403-
ycsb_status_interval_sec: 1
404-
ycsb_operation_count: 1000000000
405-
ycsb_record_command_line: False
406-
ycsb_run_parameters: dataintegrity=true,readallfields=true,writeallfields=true
407-
timeout_minutes: 360
408-
mongodb_primary_only: True
409-
mongodb_pss: False
410-
411393
fio_latency:
412394
name: fio
413395
flags:
@@ -461,3 +443,74 @@ hadoop_dfsio:
461443
disk_size: 6830
462444
disk_type: hyperdisk-throughput
463445
provisioned_throughput: 600
446+
447+
diskspd_read_only:
448+
name: diskspd
449+
flags: &diskspd_read_only_flags
450+
diskspd_prefill_duration: 2700
451+
diskspd_write_read_ratio: 0
452+
453+
diskspd_write_only:
454+
name: diskspd
455+
flags: &diskspd_write_only_flags
456+
diskspd_write_read_ratio: 100
457+
458+
diskspd_single_thread_latency:
459+
name: diskspd
460+
flags: &diskspd_single_thread_latency_flags
461+
diskspd_thread_number_per_file: 1
462+
diskspd_outstanding_io: 1
463+
diskspd_block_size: 4k
464+
diskspd_access_pattern: r
465+
466+
diskspd_max_iops:
467+
name: diskspd
468+
flags: &diskspd_max_iops_flags
469+
diskspd_thread_number_per_file: 1,4,8,16
470+
diskspd_outstanding_io: 128
471+
diskspd_block_size: 4k
472+
diskspd_access_pattern: r
473+
474+
diskspd_max_throughput:
475+
name: diskspd
476+
flags: &diskspd_max_throughput_flags
477+
diskspd_thread_number_per_file: 8,16
478+
diskspd_outstanding_io: 64,128
479+
diskspd_block_size: 1M
480+
diskspd_access_pattern: s
481+
482+
diskspd_single_thread_latency_read_only:
483+
name: diskspd
484+
flags:
485+
<<: *diskspd_read_only_flags
486+
<<: *diskspd_single_thread_latency_flags
487+
488+
diskspd_single_thread_latency_write_only:
489+
name: diskspd
490+
flags:
491+
<<: *diskspd_write_only_flags
492+
<<: *diskspd_single_thread_latency_flags
493+
494+
diskspd_max_iops_read_only:
495+
name: diskspd
496+
flags:
497+
<<: *diskspd_read_only_flags
498+
<<: *diskspd_max_iops_flags
499+
500+
diskspd_max_iops_write_only:
501+
name: diskspd
502+
flags:
503+
<<: *diskspd_write_only_flags
504+
<<: *diskspd_max_iops_flags
505+
506+
diskspd_max_throughput_read_only:
507+
name: diskspd
508+
flags:
509+
<<: *diskspd_read_only_flags
510+
<<: *diskspd_max_throughput_flags
511+
512+
diskspd_max_throughput_write_only:
513+
name: diskspd
514+
flags:
515+
<<: *diskspd_write_only_flags
516+
<<: *diskspd_max_throughput_flags

perfkitbenchmarker/data/docker/flink/cloudbuild.yaml.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
steps:
2-
- name: gcr.io/cloud-builders/gsutil
3-
args: ['cp', {{ dpb_job_jarfile }}, 'job.jar']
2+
- name: gcr.io/cloud-builders/gcloud
3+
args: ['storage', 'cp', {{ dpb_job_jarfile }}, 'job.jar']
44
- name: 'gcr.io/cloud-builders/docker'
55
args: ['build',
66
'--build-arg',

perfkitbenchmarker/data/spark/spark-defaults.conf.j2

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ spark.master=spark://{{ leader_ip }}:7077
1717
# Hadoop configs prefixed with spark.hadoop
1818
spark.hadoop.fs.defaultFS=hdfs://{{ leader_ip }}/
1919

20+
{% if shuffle_partitions is not none %}
21+
spark.sql.shuffle.partitions={{ shuffle_partitions }}
22+
{% endif %}
23+
2024
{% for key, value in spark_conf.items() %}
2125
{{ key }}={{ value }}
2226
{% endfor %}

perfkitbenchmarker/linux_benchmarks/dpb_sparksql_benchmark.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"""
4646

4747
from collections.abc import MutableMapping
48+
import functools
4849
import json
4950
import logging
5051
import os
@@ -53,11 +54,13 @@
5354
from typing import Any, List
5455

5556
from absl import flags
57+
from perfkitbenchmarker import background_tasks
5658
from perfkitbenchmarker import configs
5759
from perfkitbenchmarker import dpb_constants
5860
from perfkitbenchmarker import dpb_service
5961
from perfkitbenchmarker import dpb_sparksql_benchmark_helper
6062
from perfkitbenchmarker import errors
63+
from perfkitbenchmarker import linux_virtual_machine
6164
from perfkitbenchmarker import object_storage_service
6265
from perfkitbenchmarker import sample
6366
from perfkitbenchmarker import temp_dir
@@ -123,6 +126,10 @@
123126
' DPB services.',
124127
)
125128

129+
_READAHEAD_KB = flags.DEFINE_integer(
130+
'sparksql_readahead_kb', None, 'Configure block device readahead settings.'
131+
)
132+
126133
FLAGS = flags.FLAGS
127134

128135
LOG_RESULTS_PATTERN = (
@@ -214,6 +221,14 @@ def CheckPrerequisites(benchmark_config):
214221
)
215222

216223

224+
def _PrepareNode(vm: linux_virtual_machine.BaseLinuxVirtualMachine) -> None:
225+
if _READAHEAD_KB.value is not None:
226+
vm.SetReadAhead(
227+
_READAHEAD_KB.value * 2,
228+
[d.GetDevicePath() for d in vm.scratch_disks],
229+
)
230+
231+
217232
def Prepare(benchmark_spec):
218233
"""Installs and sets up dataset on the Spark clusters.
219234
@@ -223,6 +238,12 @@ def Prepare(benchmark_spec):
223238
Args:
224239
benchmark_spec: The benchmark specification
225240
"""
241+
# Only unmanaged dpb services are VM-aware
242+
if benchmark_spec.dpb_service.CLOUD == 'Unmanaged':
243+
nodes = benchmark_spec.dpb_service.vms['worker_group']
244+
partials = [functools.partial(_PrepareNode, node) for node in nodes]
245+
background_tasks.RunThreaded((lambda f: f()), partials)
246+
226247
cluster = benchmark_spec.dpb_service
227248
storage_service = cluster.storage_service
228249

perfkitbenchmarker/linux_benchmarks/mongodb_ycsb_benchmark.py

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@
4040
from perfkitbenchmarker.linux_packages import ycsb
4141

4242
flags.DEFINE_integer(
43-
'mongodb_readahead_kb', None, 'Configure block device readahead settings.'
43+
'mongodb_readahead_kb', 8, 'Configure block device readahead settings.'
4444
)
4545
flags.DEFINE_bool(
4646
'mongodb_primary_only',
47-
False,
47+
True,
4848
'Run with a simple primary-only setup. Mutually exclusive with'
4949
' --mongodb_pss. If both are False, the default PSA setup will be used.',
5050
)
@@ -78,7 +78,19 @@
7878
description: Run YCSB against MongoDB.
7979
vm_groups:
8080
primary:
81-
vm_spec: *default_dual_core
81+
vm_spec:
82+
GCP:
83+
machine_type: n4-standard-2
84+
zone: us-central1-b
85+
boot_disk_size: 100
86+
Azure:
87+
machine_type: Standard_D2s_v6
88+
zone: eastus-1
89+
boot_disk_size: 100
90+
AWS:
91+
machine_type: m7i.large
92+
zone: us-east-1a
93+
boot_disk_size: 100
8294
disk_spec:
8395
GCP:
8496
disk_size: 500
@@ -94,7 +106,19 @@
94106
mount_point: /scratch
95107
vm_count: 1
96108
secondary:
97-
vm_spec: *default_dual_core
109+
vm_spec:
110+
GCP:
111+
machine_type: n4-standard-2
112+
zone: us-central1-b
113+
boot_disk_size: 100
114+
Azure:
115+
machine_type: Standard_D2s_v6
116+
zone: eastus-1
117+
boot_disk_size: 100
118+
AWS:
119+
machine_type: m7i.large
120+
zone: us-east-1a
121+
boot_disk_size: 100
98122
disk_spec:
99123
GCP:
100124
disk_size: 500
@@ -110,7 +134,19 @@
110134
mount_point: /scratch
111135
vm_count: 1
112136
secondary_2:
113-
vm_spec: *default_dual_core
137+
vm_spec:
138+
GCP:
139+
machine_type: n4-standard-2
140+
zone: us-central1-b
141+
boot_disk_size: 100
142+
Azure:
143+
machine_type: Standard_D2s_v6
144+
zone: eastus-1
145+
boot_disk_size: 100
146+
AWS:
147+
machine_type: m7i.large
148+
zone: us-east-1a
149+
boot_disk_size: 100
114150
disk_spec:
115151
GCP:
116152
disk_size: 500
@@ -138,6 +174,27 @@
138174
fstab_options: noatime
139175
enable_transparent_hugepages: false
140176
create_and_boot_post_task_delay: 5
177+
ycsb_fail_on_incomplete_loading: True
178+
ycsb_measurement_type: hdrhistogram
179+
ycsb_status: True
180+
ycsb_status_interval_sec: 1
181+
ycsb_operation_count: 1000000000
182+
ycsb_record_command_line: False
183+
ycsb_run_parameters: dataintegrity=true,readallfields=true,writeallfields=true
184+
ycsb_client_vms: 1
185+
ycsb_preload_threads: 512
186+
ycsb_threads_per_client: 2048
187+
ycsb_workload_files: workloadac,workloada,workloadx
188+
ycsb_field_count: 10
189+
ycsb_field_length: 100
190+
ycsb_record_count: 20000000
191+
ycsb_sleep_after_load_in_sec: 300
192+
ycsb_timelimit: 300
193+
ycsb_sleep_between_thread_runs_sec: 120
194+
os_type: ubuntu2204
195+
timeout_minutes: 360
196+
sar: True
197+
sar_interval: 1
141198
"""
142199

143200
_LinuxVM = linux_virtual_machine.BaseLinuxVirtualMachine

perfkitbenchmarker/linux_benchmarks/unmanaged_postgresql_sysbench_benchmark.py

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import copy
2222
import logging
23+
import re
2324
import time
2425

2526
from absl import flags
@@ -105,10 +106,27 @@
105106
_OLTP_WRITE_ONLY = 'oltp_write_only'
106107
_OLTP = [_OLTP_READ_WRITE, _OLTP_READ_ONLY, _OLTP_WRITE_ONLY]
107108

108-
_SHARED_BUFFER_SIZE = flags.DEFINE_integer(
109+
_SHARED_BUFFER_SIZE = flags.DEFINE_string(
109110
'postgresql_shared_buffer_size',
110-
10,
111-
'Size of the shared buffer in the postgresql cluster (in Gb).',
111+
'10G',
112+
'Size of the shared buffer in the postgresql cluster.'
113+
'Format: <size>[<unit>], where <unit> is one of (B, K, M, G). '
114+
'Example: 16G, 512M. If no unit is specified, G is assumed by default.',
115+
)
116+
117+
118+
def _ValidateSharedBufferSizeFlagValue(value: str) -> bool:
119+
"""Validates the shared buffer size flag's format."""
120+
# Checks for one or more digits, optionally followed by B, K, M, or G.
121+
return bool(re.fullmatch(r'^\d+[BKMG]?$', value))
122+
123+
flags.register_validator(
124+
_SHARED_BUFFER_SIZE,
125+
_ValidateSharedBufferSizeFlagValue,
126+
message=(
127+
'--postgresql_shared_buffer_size must be in the format <size>[<unit>] '
128+
'where <unit> is one of (B, K, M, G). Example: 16G, 512M, 1024K, 2048B.'
129+
)
112130
)
113131
_MEASURE_MAX_QPS = flags.DEFINE_bool(
114132
'postgresql_measure_max_qps',
@@ -123,6 +141,16 @@
123141
)
124142

125143

144+
def GetBufferSize() -> str:
145+
"""Returns the buffer key for the given buffer size."""
146+
buffer_size = _SHARED_BUFFER_SIZE.value
147+
if buffer_size.endswith(
148+
('B', 'K', 'M', 'G')
149+
):
150+
return buffer_size
151+
return f'{buffer_size}G'
152+
153+
126154
def GetConfig(user_config):
127155
"""Get the benchmark config, applying user overrides.
128156
@@ -185,7 +213,7 @@ def Prepare(benchmark_spec: bm_spec.BenchmarkSpec):
185213
postgresql.ConfigureAndRestart(
186214
primary_server,
187215
FLAGS.run_uri,
188-
_SHARED_BUFFER_SIZE.value,
216+
GetBufferSize(),
189217
_CONF_TEMPLATE_PATH.value,
190218
)
191219
for index, replica in enumerate(replica_servers):
@@ -194,7 +222,7 @@ def Prepare(benchmark_spec: bm_spec.BenchmarkSpec):
194222
replica,
195223
index,
196224
FLAGS.run_uri,
197-
_SHARED_BUFFER_SIZE.value,
225+
GetBufferSize(),
198226
_CONF_TEMPLATE_PATH.value,
199227
)
200228
clients = benchmark_spec.vm_groups['client']

perfkitbenchmarker/linux_packages/hadoop.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@
3737

3838
FLAGS = flags.FLAGS
3939

40-
_VERSION = flags.DEFINE_string('hadoop_version', None, 'Version of Hadoop.')
40+
_VERSION = flags.DEFINE_string(
41+
'hadoop_version',
42+
'3.4.1',
43+
'Version of Hadoop. Default is 3.4.1 to get around'
44+
' https://issues.apache.org/jira/projects/INFRA/issues/INFRA-27182.',
45+
)
4146
_URL_OVERRIDE = flags.DEFINE_string(
4247
'hadoop_bin_url', None, 'Specify to override url from HADOOP_URL_BASE.'
4348
)

0 commit comments

Comments
 (0)