100 lines
No EOL
2.3 KiB
Markdown
100 lines
No EOL
2.3 KiB
Markdown
# Audit Logging Performance Benchmarks
|
|
|
|
## Test Environment
|
|
- Python 3.10
|
|
- 8-core CPU @ 3.2GHz
|
|
- 32GB RAM
|
|
- SSD Storage
|
|
|
|
## Benchmark Methodology
|
|
Tests measure operations per second (ops/sec) for:
|
|
1. Log entry creation with HMAC-SHA256
|
|
2. Integrity verification of log chains
|
|
3. Concurrent access performance
|
|
|
|
## Test Cases
|
|
|
|
### Single-threaded Performance
|
|
```python
|
|
import timeit
|
|
from security.memory.audit import MemoryAudit
|
|
from security.rbac_engine import RBACEngine
|
|
|
|
rbac = RBACEngine()
|
|
audit = MemoryAudit(rbac)
|
|
|
|
def test_log_operation():
|
|
audit.log_operation("read", "test_key", True, "user1")
|
|
|
|
# Warm up
|
|
for _ in range(1000):
|
|
test_log_operation()
|
|
|
|
# Benchmark
|
|
time = timeit.timeit(test_log_operation, number=10000)
|
|
print(f"Log operations/sec: {10000/time:.2f}")
|
|
```
|
|
|
|
### Multi-threaded Performance
|
|
```python
|
|
import threading
|
|
from security.memory.audit import MemoryAudit
|
|
from security.rbac_engine import RBACEngine
|
|
|
|
rbac = RBACEngine()
|
|
audit = MemoryAudit(rbac)
|
|
threads = []
|
|
results = []
|
|
|
|
def worker():
|
|
for i in range(1000):
|
|
results.append(
|
|
audit.log_operation("write", f"key_{i}", True, "user1")
|
|
)
|
|
|
|
# Create threads
|
|
for _ in range(8):
|
|
t = threading.Thread(target=worker)
|
|
threads.append(t)
|
|
|
|
# Run and time
|
|
start = time.time()
|
|
for t in threads:
|
|
t.start()
|
|
for t in threads:
|
|
t.join()
|
|
duration = time.time() - start
|
|
|
|
print(f"8-thread throughput: {8000/duration:.2f} ops/sec")
|
|
```
|
|
|
|
### Integrity Verification
|
|
```python
|
|
import timeit
|
|
from security.memory.audit import MemoryAudit
|
|
from security.rbac_engine import RBACEngine
|
|
|
|
rbac = RBACEngine()
|
|
audit = MemoryAudit(rbac)
|
|
|
|
# Populate with test data
|
|
for i in range(10000):
|
|
audit.log_operation("read", f"key_{i}", True, "user1")
|
|
|
|
# Benchmark verification
|
|
time = timeit.timeit(audit.verify_log_integrity, number=100)
|
|
print(f"Verifications/sec: {100/time:.2f}")
|
|
```
|
|
|
|
## Expected Results
|
|
| Test Case | Target Performance |
|
|
|-------------------------|--------------------|
|
|
| Single-threaded logging | ≥ 15,000 ops/sec |
|
|
| 8-thread throughput | ≥ 50,000 ops/sec |
|
|
| Integrity verification | ≥ 500 verif/sec |
|
|
|
|
## Measurement Notes
|
|
- Run benchmarks on isolated system
|
|
- Disable other processes during tests
|
|
- Repeat tests 5 times and average results
|
|
- Monitor CPU and memory usage during tests |