SAR'dan alınan bazı verileri anlamaya çalışıyorum. Bununla ilgili üç ana sorum var. Sonuçta, bir sunucu kümesinde her örnekleme aralığında kaç CPU'nun boşta olduğunu belirlemek istiyorum.
- CPU'ların çoğu her girişte görünmüyor. Bu bekleniyor mu ve bu tam olarak ne anlama geliyor? # 2 ile ilgili mi?
- Kullanılmayan hatlar var (CPU = U). Dokümantasyon "U sistem çapında Kullanılmayan kapasite gösterir" diyor. "Sistem çapında Kullanılmayan kapasite" nin kesin bir tanımını veya hiçbir tanımlamayı gerçekten bulamıyorum. "Kullanılmayan kapasite% 70 boştaydı" gibi bir şeyi nasıl yorumlayacağından emin değilim.
- Son olarak,
-
veyaall
satırının nasıl hesaplandığından emin değilim . Tüm CPU'ların ortalaması olduğunu düşünürdüm, ancak tüm CPU'larda matematiği yaptığımda, o satırdakinden çok farklı bir cevap alıyorum. Birisi bana tam olarak bu hesaplamanın ne olduğunu söyleyebilir mi? SAR ile ilgili bu soruya yakından bakıldığında ,system-wide
atıl yüzde, her CPU'nun atıl yüzde ve 'physc' değerinin ürününün toplamıdır. Ne yazık ki,physc
(veya varsayarsak) veya entc% yok bu yüzden kendi verilerimle bunu doğrulayamıyorum. Bu doğruysa,physc
boştaki yüzdeyi gerçekten anlamak için değerlere ihtiyacım var mı?
İşte gördüğüm bazı örnekler. Bunların hepsi aynı günden.
CPU | Idle CPU | Idle CPU | Idle
---------- ---------- ----------
0 | 8 0 | 15 0 | 17
1 | 25 1 | 94 1 | 32
2 | 79 2 | 100 2 | 97
3 | 62 3 | 99 3 | 71
4 | 5 4 | 13 4 | 5
5 | 7 5 | 13 5 | 23
6 | 6 6 | 99 6 | 71
7 | 7 7 | 44 7 | 98
8 | 11 8 | 12 8 | 48
9 | 17 12 | 0 12 | 38
10 | 33 16 | 12 16 | 37
11 | 64 20 | 3 20 | 42
12 | 6 U | 95 U | 97
13 | 6 - | 15 - | 85
14 | 6
15 | 6
16 | 12
17 | 15
18 | 62
19 | 69
20 | 7
21 | 7
22 | 6
23 | 7
U | 80
- | 15
case 1: avg(24): 22
case 2: avg(12): 42
case 3: avg(12): 48
Bu veriler çalışan bir komut dosyası tarafından üretilir: sar -P ALL 1 1
Daha sonra bir awk komutu çalıştırır. Awk ile iyi değilim ama bunlar açıkça önemli kısımlar:
Filtre: /System|AIX|^$|%/ {next}
ayrıştırma: {k=0;if(NR==7) k=1} {sub("^-", "all", $1); cpu=$(1+k); user=$(2+k); sys=$(3+k); io=$(4+k); idle=$(5+k)}
Bu awk ne az anlamak ve çıktı örnekleri ne gördüm dayalı doğru görünüyor.
Durum 2 için eksik değerlerin tamamen sıfır olduğunu varsayarsam, ortalama 21'dir. Bu durum durum 1 ile bir şekilde tutarlıdır. Toplam CPU boşta için sar tarafından verilen yüzde değeri.
İşte tam günlük çekimlerin bir grafiği (her 30 saniyede bir):
Çok az 'sistem çapında' boşta kalma süresi olduğunda, ortalama CPU boşta ve 'sistem çapında' boşta arasındaki ilişki neredeyse mükemmeldir. Ancak 'sistem çapında' boşta kalma süresi arttıkça korelasyon zayıflar. Bunların deterministik makineler olduğu varsayımı üzerine çalışarak bana sahip olduğum verilerin tam resmi vermediğini söylüyor. Ama ne kadar umurumda?
Neden bazı işlemcilerin her noktada rapor edilmediğini tam olarak anlamıyorum ama eksik olanlar yukarıdaki örneklerde görüldüğü gibi eşit olarak dağılmamıştır. Ayrıca bu kırmızı kitabı okurken , bunların mantıksal CPU'lar olması gerektiğini ve physc
sayılar olmadan, bu değerlerle yapabileceğim pek bir şey olmadığını düşünüyorum. U
Değeri çeşitli denklemlerde kullanmaya çalıştım ama mantıklı bir şey bulamadım. Toplam atıl yüzdenin nominal değerden alınabileceği bile net değil.
NOT : Bu verinin sar'dan yakalanmasıyla ilgili bir sorun var # 1 için tamamen geçerli bir cevaptır, eğer durum her zaman geri dönmelidir.
sar -P ALL 1 1
İşlemci çağırır ve daha sonra cpu numarasını ve ardından kullanıcı, sistem, IO-wait ve boşta kalan yüzdeleri ayırmak için awk kullanır. Cevabınıza daha fazla bilgi ekleyeceğim.
sar -P ALL
bu betiğin çıktısını değil , doğrudan çıktısını verebilir misiniz ? Standart olmayan bir komut dosyasıdır ve kimse görmeden ne yaptığını size söyleyemez.
sar -P ALL
çıktıya benzemiyor .