Дефолт числа потоков зависит от машины, а не от одного замера
Бенчмарк на Ryzen 9 9950X показал обратное тому, что было на Apple M4: там всё растёт до 16 потоков (распознавание x14.7 -> x61.3), здесь после четырёх начинается спад. Причина в неоднородных ядрах M4. Дефолт стал умеренным (половина ядер, но не больше 8), а точное значение подбирается через /v1/benchmark. Воркер по умолчанию один: параллельная обработка выигрыша не дала, процессор и так загружен целиком. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
42a98bd703
commit
4de6b14680
@@ -57,13 +57,14 @@ class TestClaimIsAtomic:
|
||||
|
||||
|
||||
class TestWorkerSettings:
|
||||
def test_default_threads_is_four_not_all_cores(self, tmp_path):
|
||||
"""Широкие потоки замедляют обе стадии, поэтому по умолчанию их немного."""
|
||||
def test_default_threads_is_capped(self, tmp_path, monkeypatch):
|
||||
"""Дефолт умеренный: оптимум зависит от процессора и подбирается замером."""
|
||||
from app.config import load_settings
|
||||
|
||||
monkeypatch.setattr("os.cpu_count", lambda: 32)
|
||||
config = tmp_path / "config.toml"
|
||||
config.write_text('[processing]\nthreads=0\n', encoding="utf-8")
|
||||
assert load_settings(config).effective_threads() == 4
|
||||
assert load_settings(config).effective_threads() == 8
|
||||
|
||||
def test_explicit_threads_respected(self, tmp_path):
|
||||
from app.config import load_settings
|
||||
@@ -78,8 +79,7 @@ class TestWorkerSettings:
|
||||
monkeypatch.setattr("os.cpu_count", lambda: 32)
|
||||
config = tmp_path / "config.toml"
|
||||
config.write_text('[processing]\nthreads=4\nworkers=0\n', encoding="utf-8")
|
||||
# 32 логических ядра при 4 потоках на задачу - но не больше разумного предела
|
||||
assert 2 <= load_settings(config).effective_workers() <= 4
|
||||
assert 1 <= load_settings(config).effective_workers() <= 4
|
||||
|
||||
def test_workers_never_below_one(self, tmp_path, monkeypatch):
|
||||
from app.config import load_settings
|
||||
@@ -87,7 +87,7 @@ class TestWorkerSettings:
|
||||
monkeypatch.setattr("os.cpu_count", lambda: 1)
|
||||
config = tmp_path / "config.toml"
|
||||
config.write_text('[processing]\nthreads=4\nworkers=0\n', encoding="utf-8")
|
||||
assert load_settings(config).effective_workers() == 1
|
||||
assert load_settings(config).effective_workers() >= 1
|
||||
|
||||
def test_explicit_workers_respected(self, tmp_path):
|
||||
from app.config import load_settings
|
||||
|
||||
Reference in New Issue
Block a user