Top neden CloudWatch'tan farklı bir işlemci kullanımını bildiriyor?


9

topCloudWatch izlemesi ortalama% 40 CPU kullanımını gösterirken, en yoğun zamanlarda ortalama% 20 CPU kullanımını gösterir. Bu tutarsızlığa ne sebep olur?

Yanıtlar:


15

Çok iyi bir gözlem ve bununla da karşılaştık. İşte bulduğum:

EC2 yönetim ortamından CPU kullanımını ölçerken dikkatli olun. CPU kullanımını% 100'ün çok altında görmek mümkündür ve yine de tamamen maksimize edilebilir. Güven bana: orada bulundum, bunu yaptım. (Bu arada CloudWatch CPUUtilization, örneğin dışından ölçülür ve her zaman doğrudur.)

Burada her şeyin çok iyi bir açıklaması var: https://axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/

Yukarıdaki örnekte, m1.small EC2 örneğine 0,4 işlemci birimi tahsis edildi ve bu nedenle% 40 CPU meşgul, alttaki çekirdeğin kullanım yüzdesi anlamına gelir. Ancak% 40, bu VM'ye ayrılabilecek maksimum CPU paylaşımı olduğundan, etkin CPU kullanımı% 40 /% 40 =% 100'dür. CloudWatch tarafından görüntülenen sayıdır.

Eğer% 40'ın nereden geldiğini merak ediyorsanız, matematik oldukça basittir. M1.small linux sistemi, 1.0–1.2 GHz 2007 Opteron veya 2007 Xeon işlemcinin eşdeğer CPU kapasitesini sağlayan 1 EC2 hesaplama birimine sahiptir. VM 2,6 GHz saat hızına sahip bir makinede çalıştığından, bu özel XEN düğümünde% 38,4 -% 46,2 işlemci payı alma hakkına sahiptir. EC2 bulut sunucularınızın arkasındaki CPU mimarisini bulmak için cat / proc / cpuinfo komutunu çalıştırabilirsiniz.

Özel matematik hakkında bilmeyen araçlarla nasıl başa çıkılacağına dair ipucuna özellikle dikkat edin:

CloudWatch ile entegre olmayan mevcut ajan veya SNMP tabanlı izleme araçlarını uyarlamak için kullanılabilecek bir başka seçenek de CPU boşta metriğini kullanmaktır. Yapmanız gereken tek şey meşgul CPU yerine CPU boşta ölçmek için kuralları yeniden yazmaktır. Meşgul CPU için tanımlanmış bir>% 75 eşiğiniz varsa, CPU boşta için <% 25 kuralı oluşturun. CPU boşta 0 ise, sunucunuz CPU'ya bağlıdır.

Çok basit. Çok hoş.

EC2 yönetim ortamı içinde en üstte çalıştırdığınızda, yönetim ortamınızı ve diğerlerini çalıştıran fiziksel çekirdek makinenin CPU kullanımı ölçülür. Yalnızca örneğinizin cpu kullanımını ölçmek istiyorsanız bu örnek yanlıştır (örneğinize atanan EC2 hesaplama birimi).

Bu nedenle bulut saati metrikleri, yalnızca örneğinize atanan EC2 hesaplama birimleri için yönetim ortamının dışında ölçüldüğünden gerçek olur.

Buraya bakın - https://forums.aws.amazon.com/thread.jspa?threadID=99993


Başka bir deyişle, ikisi de haklı ama farklı şeyleri ölçüyor.
bahamat

1
Bu şekilde koyabilirsiniz. Ancak OP, gördüğü şeyi düşündüğünün amazon'un gördüğü gibi olmadığını düşünüyor. Yani, durumunda, en iyi veriler onun için yanlış. Ancak, performans sorunlarını ayıklamak için altta yatan çekirdeğin cpu kullanımını ölçerseniz, üst sıralarda çalışmak çok yararlıdır. Yalnızca örneğinizin kullanımıyla ilgili endişeleriniz varsa, cloudwatch gitmenin yoludur. Evet, ikisi de farklı şeyleri ölçüyor.
Chida

1
Ben "eski sen ne ile ifademi izlemiştir sanırım düşünüyorum ikincisi sen ne istediğiniz gerçekten istiyoruz", ama ben zaten kaplı olduğunu düşündük.
bahamat

Az önce söylediğin için +1 :)
Chida

1
Ölü bağlantının içeriğini wayback makinesinden aldım ve doğrudan gönderiye ekledim.
Johano Fierra
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.