عدم استفاده یک برنامه از cpu در لینوکس

سلام
یه برنامه هست برای اکانتینگ اینترنت دانشگاه که با C نوشته شده
مشکل اینجاست که این برنامه از منابع استفاده نمیکنه
در حال حاظر بیشتر از 1000 نفر نمیتونن وصل شن در صورتی که load average سی پی یو روی 0.47 هست
و یه cpu هشت هسته ای داره این سرور
ورژن برنامه رو که چک کردم با چنین چیزی مواجه شدم:

Version 2.2.6, for host i386-redhat-linux-gnu, built on jul 18 2017

الآن برداشت من اینه که به جای این که لینوکس نسخه amd64 نصب شده باشه با یه لینوکس 32 بیتی روی یه سیستم خیلی قوی طرف هستیم
درسته؟؟ میتونم نتیجه گری کنم مشکل از همینه و با تغییر سیستم عامل به مثلا centOS نسخه 64 بیتی مشکل حل میشه؟؟

خب شما دوست دارید فشار بیاره به سخت‌افزار؟
درک نمیکنم قضیه رو.

1 Like

سلام

بحث سر اینه که بیشتر از ۱۰۰۰ نفر نمیتونن وصل شن
در حالی که منابع سیستم آزاده
به جای این که از ۱۰ درصد سی پی یو استفاده کنه و ۱۰۰۰ نفر بتونن وصل شن من ترجیح میدم ۹۰ درصد سی پی یو درگیر بشه و ۱۰٬۰۰۰ نفر کانکت بشن

1 Like

مشکل شما از نرم افزار هست که به صورت concurrent کار نمی کنه احتمالا و نمی تونه از منابع استفاده کنه. اگر بیشتر از ساختارش بگی بیشتر می تونیم کمک کنیم

2 Likes

با سلام
همین طور که @lxsameer هم گفتن با ید به صورت Multi-Thread نوشته بشه که چندین راه هست براش با ++C :

  • به صورت Multi-Thread نوشته بشه
  • می تونین از tbb استفاده کنین که بتونین تعداد کور های بیشتر رو درگیر کنین
  • میتونین به صورت موازی هم اگه کار پردازشی هست رو انجام بدن با استفاده از openmp

شما مشکل را بگین تا بشه راه حل مناسب رو مطرح کرد.

2 Likes

سلام
از این برنامه داره استفاده میشه
https://freeradius.org
البته نسخه قدیمی ترش یعنی 2.2.6
لینوکسی که این برنامه روش نصبه 32 بیتی هست و من حدث میزنم مشکل از همینه
چون مثلا سرور ۸ گیگ رم داره ولی نسخه i386 لینوکس centOS فقط از ۳.۸ گیگ رم میتونه استفاده کنه

خیلی پیشنهاد می کنم توی کامیونیتی اونا سوال رو مطرح کنین. حس می کنم مشکل از تنظیمات شماست مثلا تعداد پروسس ها یا ترد ها رو درست انتخاب نکردید.

در مورد i386 هم که حتما ۶۴ بیتی استفاده کنین اما ایراد قبل از اونه