-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
executable file
·50 lines (50 loc) · 2.36 KB
/
Copy pathdocker-compose.yml
File metadata and controls
executable file
·50 lines (50 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
services:
rag-api-v2:
build:
context: ./rag_app
# dockerfile: Dockerfile # اگر نام دیگری داشت
container_name: rag-api-v2
ports:
- "8000:8000"
volumes:
- ./rag_app:/rag_app # مانت کردن کل پوشه برنامه
# میتوانید پوشه data را به صورت جداگانه مانت کنید اگر خارج از rag_app است
# - ./persian_data_files:/rag_app/data # مثال
working_dir: /rag_app
# تنظیمات CPU
cpus: 6.0 # اجازه استفاده از 6 هسته از 8 هسته موجود
cpu_shares: 2048 # اولویت بالا برای پردازش
environment:
- OMP_NUM_THREADS=4 # تعداد thread ها برابر با تعداد هستههای فیزیکی
- MKL_NUM_THREADS=4 # تنظیم برای Intel MKL
- NUMEXPR_NUM_THREADS=4 # تنظیم برای NumExpr
- VECLIB_MAXIMUM_THREADS=4 # تنظیم برای VecLib
- OPENBLAS_NUM_THREADS=4 # تنظیم برای OpenBLAS
# تنظیمات اضافی برای بهینهسازی Intel CPU
- MKL_DYNAMIC=FALSE # غیرفعال کردن تخصیص پویا برای کنترل بهتر
- OMP_DYNAMIC=FALSE
- OMP_PROC_BIND=SPREAD # پخش thread ها روی هستههای مختلف
- OMP_PLACES=CORES # اختصاص thread ها به هستههای فیزیکی
deploy:
resources:
limits:
cpus: '6.0' # محدودیت استفاده از CPU
reservations:
cpus: '2.0' # حداقل 2 هسته رزرو شده
ulimits:
nproc: 65535 # افزایش محدودیت تعداد پردازشها
nofile:
soft: 65535 # افزایش محدودیت تعداد فایلهای باز
hard: 65535
# اضافه کردن env_file برای مدیریت متغیرهای محیطی اگر نیاز باشد
# env_file:
# - ./.env
# برای استفاده از GPU در Docker (نیاز به nvidia-docker runtime):
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: 1
# capabilities: [gpu]
command: ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "4", "--reload"] # تعداد workers برابر با تعداد هستههای فیزیکی