TGViewer
کدهالیک | codehalic کدهالیک | codehalic @codehalics · 4.15K subscribers
Post #1149 994
نودجی‌اس برای اینکه ایونت لوپ (Event Loop) اصلیش موقع کارهای سنگین قفل نشه، یه سری از کارها رو میسپاره به یه بخش پس‌زمینه به اسم ترد پول که توسط کتابخونه libuv مدیریت میشه. تعداد این تردها به‌صورت پیش‌فرض ۴ تاست و کارهایی مثل رمزنگاری (crypto)، فشرده‌سازی (zlib) یا یک‌سری عملیات دیسک رو انجام میدن. شما میتونید با تغییر متغیر محیطی UV_THREADPOOL_SIZE تعدادشون رو بیشتر یا کمتر کنید.
توی نودجی‌اس سایز پیش‌فرض ترد پول روی ۴ تنظیم شده و می‌تونی اون رو دستی بین ۱ تا ۱۰۲۴ تغییر بدی. تابع os.availableParallelism() این کار رو اتوماتیک انجام نمیده و فقط تعداد هسته‌های در دسترس پردازنده رو میده.

نویسنده توی این مقاله میگه افزایش خودکار تعداد تردهای ترد پول بر اساس تعداد هسته‌های CPU (مثلاً با تابع `availableParallelism`) اصلاً ایده درستی نیست. دلیلش اینه که این تابع فقط تعداد هسته‌های موجود رو نشون میده، نه میزان آزاد بودنشون رو. اگه برنامه‌های مختلف فکر کنن همه هسته‌ها خالیه و کلی ترد جدید بسازن، سرور دچار رقابت شدید بین پروسس‌ها میشه. این کار باعث افزایش جابه‌جایی‌های پردازنده (Context Switching) و پر شدن کش میشه که در نهایت حتی خود ایونت لوپ اصلی نودجی‌اس رو هم کُند میکنه.

از طرف دیگه، زیاد کردن تردها شاید برای کارهای I/O که منتظر دیسک می‌مونن خوب باشه، اما برای کارهای محاسباتی سنگین مثل bcrypt و gzip اوضاع رو بدتر میکنه و زمان پاسخگویی به درخواست‌ها رو بالا می‌بره. نویسنده اشاره میکنه که پایین آوردن اولویت تردها (مثل nice 10) هم مشکل رو کامل حل نمیکنه. در نهایت حرفش اینه که سایز ترد پول نباید اتوماتیک تغییر کنه، بلکه باید بر اساس تست کارایی واقعی روی سرور شلوغ و نوع برنامه به شکل دستی تنظیم بشه.

https://blog.platformatic.dev/more-threads-on-an-already-busy-machine

@codehalics | کدهالیک
  • 👍 6
  • ❤ 2
More from @codehalics
  1. Oct 3, 2026امروز سرور کدهالیک یه مدت از دسترس خارج شد. بعد از پیگیری معلوم شد هیت‌سینک سرور مشکل داشت…
  2. Oct 3, 2026کارآموز .net اگر به دنیای نرم‌افزار علاقه دارید و برای یادگیری و حل مسئله کنجکاو و پرتلاش…
  3. Oct 3, 2026یه اصطلاح باحالی توش استفاده کرد بود به اسم«اقتصاد دمبلی» (Barbell Economy) مفهوم اقتصاد د…
  4. Oct 3, 2026تو این مقاله‌ای که خوندم نویسنده میگه هنوز برای ساختن یه کسب‌وکار از صفر تو عصر هوش مصنوعی…
  5. Oct 3, 2026دقیقاً مشابه این اتفاق چند سال پیش برای Faker.js افتاد؛ نگهدارنده اصلی پروژه بعد از مدت‌ها…
  6. Oct 3, 2026خبر فوری برای دنیای .NET؛ Polly هم پولی شد! این ابزار هم رفت سراغ مدل تجاری و بخشی از استف…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →