Neden Linux yük hesaplamalarında basit bir 1/5/15 dakikalık hareketli ortalama kullanılmıyor?


28

Yakın zamana kadar, yük ortalamasının (örneğin yukarıda gösterildiği gibi), "çalıştırılabilir" ya da "koşuyor" durumundaki işlem sayısının son n değerleri üzerinde hareketli bir ortalama olduğunu düşündüm. Ve n, hareketli ortalamanın "uzunluğu" ile tanımlanırdı: yük ortalamasını hesaplama algoritması her 5 saniyede bir tetikleyici gibi göründüğü için, n, 1 dakikalık yük ortalaması için 12, 5 dakikalık yük ortalaması için 12x5 ve 12x15 olacaktı. 15 dk yük ortalaması için.

Ama sonra bu yazıyı okudum: http://www.linuxjournal.com/article/9001 . Makale oldukça eski ama aynı algoritma bugün Linux çekirdeğinde de uygulanmaktadır. Yük ortalaması hareketli bir ortalama değil, adını bilmediğim bir algoritma. Her neyse, Linux çekirdek algoritması ile hayali bir periyodik yük için hareketli bir ortalama arasında bir karşılaştırma yaptım:

yük grafiği.

Çok büyük bir fark var.

Sonunda benim sorularım:

  • Bu uygulama neden gerçek bir hareketli ortalamaya göre seçildi, ki bu herkes için gerçek bir anlam ifade ediyor?
  • Neden herkes son dakikadan daha fazla algoritma tarafından hesaba katıldığı için "1 dk yük ortalaması" hakkında konuşuyor? (matematiksel olarak, önyüklemeden bu yana tüm önlem; pratikte, yuvarlama hatasını hesaba katarak - hala çok sayıda önlem var)

5
Bu bir var ortalama hareketli Üstel ayrıca finans (teknik analiz) örneğin kullanılan (EMA). Avantajları muhtemelen aynıdır - EMA önceki ve şimdiki değerden hesaplanabilir ve son değerlere eski değerlerden daha fazla ağırlık verilir. Standart bir MA'da en eski değer, en son değere oranla en fazla ortalamanın değerine katkıda bulunur ve bazen en yeni değerlerin daha önemli olduğunu düşünüyoruz.
jg-faustus,

Yanıtlar:


24

Bu fark, orijinal Berkeley Unix'e dayanıyor ve çekirdeğin gerçekten de bir yuvarlanma ortalamasını sürdürememesi gerçeğinden kaynaklanıyor; bunu yapmak için çok sayıda geçmiş okumayı saklaması gerekecektir ve özellikle eski günlerde bunun için yeterli bellek yoktu. Bunun yerine kullanılan algoritma, tüm çekirdeğin tutması gereken önceki hesaplamanın sonucudur.

Bilgisayar hızları ve karşılık gelen saat döngüleri GHz yerine onlarca MHz'de ölçüldüğünde, algoritmanın gerçeğe biraz daha yakın olduğunu unutmayın; Bu günlerde tutarsızlıkların sürünmesi için daha çok zaman var.


2
Tamam, bu uygulama seçimini açıklar. Neden birçok insanın üç yük ortalamasının son 1 dakika / 5 dakika / 15 dakika boyunca hesaplandığını düşündüğünü biliyor musunuz? Yanlış olduğunu düşünüyorum, algoritma tüm son değerler üzerinden bir ortalama hesaplar. Eski değerlerin yeni değerlere göre daha az öneme sahip olduğunu biliyorum, ancak yine de, 1 dakikadan daha eski değerlerin hala 1 dak yük ortalamasında ihmal edilemez bir etkiye sahip olduğunu biliyorum. Yani benim düşünceme göre "1min / 5min / 15min" hiçbir anlamı yok, ama hatalı olabilirim (?)
user368507

5
Çünkü bu hangi belgelerin ve orijinal BSD ile başlayan onları bildirilen her program uptimeve widdia; Bunun doğru olmadığını anlamak için çekirdek kaynaklarına bakmak zorundaydınız.
geekosaur

1
Bu gerçekten üzücü
user368507 9:11

3
@ user5528 kez 1min/5min/15min do duygusu var. Geçerli yükün etkisinin bir miktar sabit faktör tarafından düşeceği süreyi belirler (muhtemelen e = 2.71 .. veya belki 2). Sadece dene.
maaartinus

2
@maaartinus Evet. 1 dak / 5 dak / 15 dak, EMA hesaplamasında eski ölçütlerin 1 / e'ye eşit veya daha az bir ağırlığa sahip olduğu süreyi belirler. Bu hassasiyet, erkeğin çalışma süresinde veya erkekte görünmez .
user368507 12:11
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.