AWS Linux CloudWatch - مقياس لأفضل 5 عمليات وذاكرة مستهلكة

-1

أحاول نشر مقياس مخصص (cloudwatch) للحصول على أفضل 5 عمليات واستهلاكها للذاكرة في أجهزة Linux.

بالنسبة لنظام التشغيل Windows حاليًا ، أستخدم البرنامج النصي powerhell التالي:

$Processes = get-process | Sort-Object CPU -desc | Group-Object -Property 

ProcessName | Select-Object -first 5
#$Processes = get-process | Group-Object -Property ProcessName

foreach($Process in $Processes)
{
    $mem = ($Process.Group|Measure-Object WorkingSet -Sum).Sum
    $memMB = $mem/1MB
    $Obj = New-Object psobject
    $Obj | Add-Member -MemberType NoteProperty -Name Name -Value $Process.Name
    $Obj | Add-Member -MemberType NoteProperty -Name Mem -Value $memMB
    $Obj

    #Write-Host $Process.Name
    aws cloudwatch put-metric-data --metric-name $Process.Name --namespace TopProcesses --value $memMB
}

في الوقت الحالي يعمل هذا بشكل جيد مع Windows ، لكني أواجه الكثير من المتاعب في نقل مفهوم مماثل على أجهزة Linux ، إذا كان بإمكان أي شخص أن يقدم لي بعض المساعدة بشأن هذه المشكلة ، فسيكون ذلك محل تقدير كبير.

تحرير: إذا كان من الممكن استرداد هذه المعلومات من خلال لامدا ، فسأتمكن من العثور على حل ، ومع ذلك ، فأنا لست متأكدًا من الطريقة التي يجب أن أذهب بها للحصول على معلومات مثيل لينكس من خلال الثعبان.

1 إجابة

-1
افضل جواب

أعتقد حقًا أنه من الأفضل استخدام بعض مقاييس المقاييس. على سبيل المثال Telegraf أو Collectd . يدعم كلا الحلين توزيعات Windows و Linux.

Telegraf لديه تكوين yaml لطيف. أنت فقط وضعت ساعة كلاود في الإخراج وهذا كل شيء. تساعدك الحلول الجاهزة على تجنب تطوير / دعم التعليمات البرمجية المخصصة.

أما بالنسبة لبرنامج نصي ، يمكنك الحصول على أفضل 5 عمليات عن طريق الذاكرة مثل هذا:

PIDS=$(ps aux --sort -rss | tail -n +2 | head -n 5 | awk '{print $2}')

فوق النص سينتزع أذرع العمليات. هناك الكثير من الطرق حول كيفية استخدام PID للذاكرة. على سبيل المثال ، يمكنك القيام بما يلي:

cat /proc/$pid/status

:مؤلف
فوق
قائمة طعام