Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
4c8644e
Enable autoscaling for additional node pools
vofish Mar 5, 2026
a447fc7
Fix incorrect numjob value in iops under SLA benchmark
Arushi-07 Mar 5, 2026
99fdd28
Make Memtier load command retry on connection failures.
bvliu Mar 5, 2026
488ae69
Disable retries for Memtier commands when using multiple client VMs.
bvliu Mar 5, 2026
e4ce438
Add a flag to retry resource creation on insufficient capacity errors.
Mar 5, 2026
0161a49
Add parsing for more lmbench metrics, including socket bandwidth.
andyz422 Mar 5, 2026
667eecd
Add wait stats query before HammerDB run.
bvliu Mar 6, 2026
52c0a29
Add background collection of SQL Server performance counters during H…
bvliu Mar 6, 2026
a4825b0
Update nodejs package
hubatish Mar 6, 2026
541547f
Add template and scaling logic
vofish Jan 30, 2026
0994b75
Add scaling down logic and gathering metrics
vofish Feb 2, 2026
e6d58d8
Add scaling down logic, phases and gathering metrics
vofish Feb 10, 2026
d0abf08
Refactor kubernetes_node_scale benchmark
vofish Feb 13, 2026
bb8aaa2
Add template and scaling logic
vofish Jan 30, 2026
fc0b00c
Add scaling down logic and gathering metrics
vofish Feb 2, 2026
5ceda3d
Add scaling down logic, phases and gathering metrics
vofish Feb 10, 2026
8349410
Refactor kubernetes_node_scale benchmark
vofish Feb 13, 2026
f6564f4
Update import and j2 template
vofish Feb 17, 2026
06577af
Fix issue where the first kubectl get command might failed
vofish Feb 18, 2026
f2dc3bf
Raise an error when the timeout is reached
vofish Feb 23, 2026
9911e68
Add optional argument suppress_logging to 'GetAllNamesForResourceType…
vofish Feb 24, 2026
7de342b
Enable autoscaler for additional node pools, add pod cidr /10 for big…
vofish Feb 24, 2026
9679fe1
Add additional params to AKS, address linting warnings
vofish Mar 5, 2026
ba8a081
Move static_vm_spec to its own file
hubatish Mar 6, 2026
77f369a
Update kubernetes_node_scale_benchmark
vofish Mar 9, 2026
efad118
Fix cluster-ipv4-cidr calculation to account for additional nodepools
vofish Mar 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGES.next.md
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,8 @@
- Add support for enabling live migration on AMD SEV
- Increased maintenance simulation notification timeout to 4 hours in
maintenance_simulation_trigger.py.
- Added `--retry_on_insufficient_capacity_cloud_failure` so that resource
creation can be retried on stock outs.

### Bug fixes and maintenance updates:

Expand Down
4 changes: 2 additions & 2 deletions perfkitbenchmarker/configs/static_vm_decoders.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
# limitations under the License.
"""Module containing Static VM Decoders."""

from perfkitbenchmarker import static_virtual_machine
from perfkitbenchmarker.configs import option_decoders
from perfkitbenchmarker.configs import static_vm_spec


class StaticVmDecoder(option_decoders.TypeVerifier):
Expand All @@ -38,7 +38,7 @@ def Decode(self, value, component_full_name, flag_values):
errors.Config.InvalidValue upon invalid input value.
"""
input_dict = super().Decode(value, component_full_name, flag_values)
return static_virtual_machine.StaticVmSpec(
return static_vm_spec.StaticVmSpec(
self._GetOptionFullName(component_full_name),
flag_values=flag_values,
**input_dict
Expand Down
86 changes: 86 additions & 0 deletions perfkitbenchmarker/configs/static_vm_spec.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Copyright 2014 PerfKitBenchmarker Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""The static VM spec.

Used to define static VMs (ie not created by PKB). See static_virtual_machine.py
for more details.
"""

from perfkitbenchmarker import disk
from perfkitbenchmarker import virtual_machine_spec


class StaticVmSpec(virtual_machine_spec.BaseVmSpec):
"""Object containing all info needed to create a Static VM."""

CLOUD = 'Static'

def __init__(
self,
component_full_name,
ip_address=None,
user_name=None,
ssh_private_key=None,
internal_ip=None,
internal_ips=None,
ssh_port=22,
password=None,
disk_specs=None,
os_type=None,
tag=None,
zone=None,
**kwargs
):
"""Initialize the StaticVmSpec object.

Args:
component_full_name: string. Fully qualified name of the configurable
component containing the config options.
ip_address: The public ip address of the VM.
user_name: The username of the VM that the keyfile corresponds to.
ssh_private_key: The absolute path to the private keyfile to use to ssh to
the VM.
internal_ip: The internal ip address of the VM.
internal_ips: The internal ip addresses of the VMs.
ssh_port: The port number to use for SSH and SCP commands.
password: The password used to log into the VM (Windows Only).
disk_specs: None or a list of dictionaries containing kwargs used to
create disk.BaseDiskSpecs.
os_type: The OS type of the VM. See the flag of the same name for more
information.
tag: A string that allows the VM to be included or excluded from a run by
using the 'static_vm_tags' flag.
zone: The VM's zone.
**kwargs: Other args for the superclass.
"""
super().__init__(component_full_name, **kwargs)
self.ip_address = ip_address
self.user_name = user_name
self.ssh_private_key = ssh_private_key
self.internal_ip = internal_ip
self.internal_ips = internal_ips
self.ssh_port = ssh_port
self.password = password
self.os_type = os_type
self.tag = tag
self.zone = zone
self.disk_specs = [
disk.BaseDiskSpec(
'{}.disk_specs[{}]'.format(component_full_name, i),
flag_values=kwargs.get('flag_values'),
**disk_spec
)
for i, disk_spec in enumerate(disk_specs or ())
]
4 changes: 2 additions & 2 deletions perfkitbenchmarker/configs/vm_group_decoders.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
from perfkitbenchmarker import os_types
from perfkitbenchmarker import provider_info
from perfkitbenchmarker import providers
from perfkitbenchmarker import static_virtual_machine
from perfkitbenchmarker import virtual_machine_spec
from perfkitbenchmarker.configs import option_decoders
from perfkitbenchmarker.configs import spec
from perfkitbenchmarker.configs import static_vm_decoders
from perfkitbenchmarker.configs import static_vm_spec

_DEFAULT_DISK_COUNT = 1
_DEFAULT_VM_COUNT = 1
Expand Down Expand Up @@ -52,7 +52,7 @@ class VmGroupSpec(spec.BaseSpec):
disk_type: str
disk_spec: disk.BaseDiskSpec
os_type: str
static_vms: list[static_virtual_machine.StaticVmSpec]
static_vms: list[static_vm_spec.StaticVmSpec]
vm_count: int
vm_spec: virtual_machine_spec.BaseVmSpec
vm_as_nfs: bool
Expand Down
32 changes: 32 additions & 0 deletions perfkitbenchmarker/data/capture_db_scoped_configurations.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
SELECT * FROM sys.databases;

SELECT * FROM sys.master_files;

DECLARE @dbname SYSNAME;
DECLARE @cmd NVARCHAR(300);

DECLARE db_cursor CURSOR LOCAL FAST_FORWARD FOR
SELECT name
FROM sys.databases d
WHERE
d.state = 0
OPEN db_cursor;

FETCH NEXT FROM db_cursor INTO @dbname;

WHILE @@FETCH_STATUS
= 0
BEGIN
SET
@cmd = 'USE '
+ QUOTENAME(@dbname)
+ '; SELECT DB_NAME() as databasename,* FROM sys.database_scoped_configurations'
EXEC sp_executesql @cmd;

FETCH NEXT FROM db_cursor INTO @dbname;

END;

CLOSE db_cursor;

DEALLOCATE db_cursor;
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
labels:
app: app
spec:
replicas: 0
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- app
topologyKey: "kubernetes.io/hostname"
containers:
- name: pause
image: registry.k8s.io/pause:3.10
resources:
requests:
cpu: 100m
memory: 100Mi
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ def Run(spec: benchmark_spec.BenchmarkSpec) -> list[sample.Sample]:
while numjobs > 0:
left_iodepth = 1
right_iodepth = max_iodepth
benchmark_params['numjobs'] = numjobs
iodepth_details[numjobs] = {}
while left_iodepth <= right_iodepth:
iodepth = (left_iodepth + right_iodepth) // 2
Expand Down
5 changes: 2 additions & 3 deletions perfkitbenchmarker/linux_benchmarks/hammerdbcli_benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -361,13 +361,12 @@ def _CheckAlloyDbColumnarEngine(
def _PreRun(db: relational_db.BaseRelationalDb) -> None:
"""Prepares the database for the benchmark run."""
db.ClearWaitStats()
db.QueryIOStats()
db.LogDatabaseDebugInfo()


def _PostRun(db: relational_db.BaseRelationalDb) -> None:
"""Records the database metrics after the benchmark run."""
db.QueryWaitStats()
db.QueryIOStats()
db.LogDatabaseDebugInfo()


def Run(benchmark_spec: bm_spec.BenchmarkSpec) -> list[sample.Sample]:
Expand Down
Loading