اطلاعیه

Collapse
No announcement yet.

خواندن بار cpu در لینوکس

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    خواندن بار cpu در لینوکس

    سلام
    کسی میدونه چطوری میشه بار cpu رو بصورت لحظه ای خوند؟ من چند تا دستور میشناسم. مثل top یا uptime و ... . اما همه اونا load average رو میدن که مربوط به بار متوسط در 1 دقیقه و 5 دقیقه و 15 دقیقه گذشته است. من میخوام بار متوسط در 1 ثانیه گذشته رو بخونم. کسی از دوستان ایده ای داره ؟
    ممنون
    اگه رد میکنی رد کن ولی من به جز درگاه تو جایی ندارم....

    #2
    پاسخ : خواندن بار cpu در لینوکس

    شما میتونین با اضافه کردن اپلت System Monitor و در بخش تنظیمات میزان بازه های پدیت رو بر حسب میلی ثانیه تنظیم کنید مثلا هر ۱۰۰ میلی ثانیه نمودار پدیت بشه...

    دیدگاه


      #3
      پاسخ : خواندن بار cpu در لینوکس

      نوشته اصلی توسط علی اکبر سلطانلو
      سلام
      کسی میدونه چطوری میشه بار cpu رو بصورت لحظه ای خوند؟ من چند تا دستور میشناسم. مثل top یا uptime و ... . اما همه اونا load average رو میدن که مربوط به بار متوسط در 1 دقیقه و 5 دقیقه و 15 دقیقه گذشته است. من میخوام بار متوسط در 1 ثانیه گذشته رو بخونم. کسی از دوستان ایده ای داره ؟
      ممنون
      الان که دوباره سوالتون رو خوندم این به ذهنم رسید که ممکنه که شما منظورتون گرفتن خروجی در ترمینال بوده...
      خوب واسه این راههای زیادی هست باید برین منوال رو بخونین من یه نگاه سریع به منوال top انداختم سوئیچ b باعث میشه که در حالت batch باشه و خروجی رو راحت بدین به باقی برنامه ها....سوئیچ -d فاصله پدیت رو بر حسب ثانیه و یا میلی ثانیه میده..توی منوال مثل اینکه سوئیچهای مخصوص فیلدها و ترتیب هست که میتونین بهش نگاهی بندازید
      نکتهٰ دیگه هم اینکه پردازش متن توسط sed یا awk یا هر زبان اسکرپتی دیگه توی خروجی میتونه بهتون کمک کنه مثلا این دستور top هست که هر ۱۵۰ میلی ثانیه پدیت میشه و...
      کد:
      top -b -d 0.150 | awk 'print{$S1}'

      البته روی awk اصلا تسلط ندارم ... با sed هم میشه هر کاری که بخواین روی خروجی top انجام بدین
      ازون طرف ممکنه ابزارهای مستقیمی هم باشه مثلا
      کد:
      export PS1="\j [\!-\#]\n[Load: `cat /proc/loadavg|awk '{print $1}'` \t]\n\u@\h \W >"

      خلاصه هیچ چیز نشدنی وجود نداره ولی باید روش کار کنین...راجع به دستورات دیگه هم اطلاعی ندارم...

      دیدگاه


        #4
        پاسخ : خواندن بار cpu در لینوکس

        سلام دوست عزیز
        ممنون از رهنمایی شما
        فکر کنم منظور منو متوجه نشدید.
        ببینید من با دستور top آشنایی دارم. تو همون دستور top در ابتدا 3 تا مقدار بر میگردونه که load average هست که متوسط بار در 1 دقیقه و 5 دقیقه و 15 دقیقه گذشته است. حالا به فرض اگه من دستور top رو هر 1 ثانیه یک بار update کنم بازم مقداری که میده مربوط به متوسط در دقایق گذشته است. من دنبال متوسط در 1 ثانیه گذشته هستم .
        اگه رد میکنی رد کن ولی من به جز درگاه تو جایی ندارم....

        دیدگاه


          #5
          پاسخ : خواندن بار cpu در لینوکس

          بله ولی خوب اون سوئیچ d نمیتونه کمک کنه؟
          به نظرم میشه ولی فرمولی که باید بدست بیارید یه کم پیچیده میشه...
          مثلا top -d 1 -b خوب این هر ثانیه مقدار load و avg رو در بازه های ۵ دقیقه قبل گفته بعد از یه ثانیه با هم متوسط همون ۵ ۱۰ ۱۵ رو میگه ولی با یک ثانیه شیفت در بازه و ...
          به نظرم میشه ازین جا به اون هدف رسید....
          با این حال ممکنه دستورات دیگه ای هم باشه البته محتوای فایل cat /proc/loadavg هم همون میانگین رو میده خوب این میانگین نحوه محاسبه اش احتمالا از یه تابع درونی تر لحظه بدست میاد...به نظرم بجز روش بالا که نوشتن یه اسکریپت هست فکر میکنم تابع مستقیمی هم باشه...

          دیدگاه


            #6
            پاسخ : خواندن بار cpu در لینوکس

            این لینک ظاهرا یه بررسی علمی ازین مورد هست:
            http://www.teamquest.com/resources/gunther/display/5/index.htm
            حالا نمیدونم تا چه حد به عمق این مطلب پرداخته
            از طرفی توی لینکهای زیر مسائلی مثل مکانیسم محاسبهٰ همین لود از طریق تابع timer.c این کار رو انجام میده که میتونین به سورسش مراجعه کنید.
            http://www.linuxjournal.com/article/9001
            http://nosheep.net/story/defining-unix-load-average/
            ضمن اینکه ظاهرا این کمیت به خاطر ساختار فیزیک خود CPU کوانتیده است و نمیتونه کمیتی پیوسته باشه البته مقدارش فرق میکنه ...
            بهرحال فکر میکنم ممکنه ولی تا چه حد ممکنه مشکل باشه نمیدونم البته فوقش دست بردن و خوندن فایلهائی مثل همون برنامهٰ timer.c هست که مورد استفاده دستور uptime قرار میگیره...

            دیدگاه

            لطفا صبر کنید...
            X