Security re-check and load test 2026-10-04: 32 threads, data file permissions, patched deps
- gunicorn gthread 8 -> 32 threads per worker: each assistant stream holds a thread for the whole answer; with 3x8, about 20 concurrent asks already queued ordinary page loads for seconds (up to 23 s at 50 asks locally, 7 s at 20 asks on the live server). With 3x32, 75 concurrent asks kept page loads under 110 ms (laptop, simulated model and Qdrant) - deploy.sh: new step closes the project dir to other accounts and sets the database and backups to 0600/0700 on every release; user `nobody` on the shared server could read db.sqlite3 and every backup - requirements: python-dotenv 1.2.2, urllib3>=2.8.0 (known CVEs in the installed versions), gunicorn pinned to the server's version (was only installed by hand) - security-before-production.md: items 19-23 (file permissions, DEBUG=1 still in the systemd unit, dependencies, frontend headers, guest AI cap per shared IP) and the reproduced X-Forwarded-For spoof through the origin IP - model-prices.md: 0.183 cents per answer from 50 answers in the live load test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -932,7 +932,7 @@ fetch ← `npm ci` ← بررسیِ نوعها ← build در `dist.next` ←
|
||||
|
||||
### ۱۴-۳ مقیاسِ اجرا: کجا گلوگاه است و بعد چه
|
||||
|
||||
وضعِ فعلی: ۲۴ درخواستِ همزمان؛ درخواستِ عادی چند ده میلیثانیه، جوابِ دستیار دهها ثانیه. توکن stateless است، پس هر تعداد نسخهی دیگر از بکاند پشتِ nginx بیتغییرِ کد کار میکند — به شرطِ دیتابیس و کشِ مشترک.
|
||||
وضعِ فعلی: ۳ worker × ۳۲ نخ = ۹۶ درخواستِ همزمان (تا ۲۰۲۶-۱۰-۰۴ ۸ نخ بود)؛ درخواستِ عادی چند ده میلیثانیه، جوابِ دستیار روی سرور میانهی ۵ تا ۸ ثانیه و گاهی ۴۰ ثانیه، که تمامش یک نخ را نگه میدارد. لودتستِ همان روز: با ۸ نخ از حدودِ ۲۰ پرسشِ همزمان صفحههای عادی چند ثانیه صف کشیدند؛ با ۳۲ نخ تا ۷۵ پرسش نه. توکن stateless است، پس هر تعداد نسخهی دیگر از بکاند پشتِ nginx بیتغییرِ کد کار میکند — به شرطِ دیتابیس و کشِ مشترک.
|
||||
|
||||
| # | گلوگاه | راهحلِ سادهی بعدی | نیاز |
|
||||
|---|---|---|---|
|
||||
|
||||
Reference in New Issue
Block a user