Files
2026-07-13 12:24:33 +08:00

45 lines
1.3 KiB
Python

"""Configuration for LMCache Controller ZMQ Benchmark"""
# SPDX-License-Identifier: Apache-2.0
# Standard
from dataclasses import dataclass, field
from typing import Dict, Optional
@dataclass
class ZMQBenchmarkConfig:
"""Configuration for ZMQ benchmark parameters"""
controller_pull_url: str
controller_reply_url: Optional[str]
duration: int
batch_size: int
num_instances: int
num_workers: int
num_locations: int
num_keys: int
controller_heartbeat_url: Optional[str] = None
num_hashes: int = 100
operations: Dict[str, float] = field(default_factory=dict)
heartbeat_interval: float = 1.0
register_first: bool = True
# Multi-process settings
num_processes: int = 1
process_id: int = 0
def __post_init__(self):
if not self.operations:
# Default: 70% admit, 25% evict, 5% heartbeat
self.operations = {
"admit": 70.0,
"evict": 25.0,
"heartbeat": 5.0,
}
# Validate operation percentages sum to 100
total_percentage = sum(self.operations.values())
if abs(total_percentage - 100.0) > 0.01:
raise ValueError(
"Operation percentages must sum to 100, got: %s" % total_percentage
)