Linux ortalama önyüklemede ne kadar veri okuyor?


9

Yeni kurulmuş bir vanilya Linux sisteminin (32 bit CentOS 5.10 gibi) sanal bir konsol kabuğu istemine ulaşmak için toplamda ne kadar veri okuduğunu merak ediyorum? Tüm yapılandırma dosyalarını okuma, ikili dosyaları yükleme, çekirdek resmi vb.

Büyüklük sırası tahminleri arıyorum. Linux önyüklemesinin sürecin ayrıntıları açısından büyük ölçüde değiştiğinin farkındayım. 10Mb'den mi bahsediyoruz? 100Mb? 1Gb?


5
Neden soruyorsun?
Zoredache

2
Değişkenlik, sistemler arasındaki büyüklük sıralarıdır - çekirdeği ve sürücüleri yüklemek, önyükleme sürecinin en küçük kısmıdır ve bir sistemdeki init komut dosyaları, bir giriş istemi almadan önce tam anlamıyla her şeyi yapabilir . Lütfen uğraştığınız durumu çözmenize yardımcı olabileceğimiz gerçek ve pratik bir sorun olarak açıklayın.
voretaq7

1
@amn Nedeni ilk sorunuza sorabilir misiniz? Bağlamda yardımcı olacaktır. İnsanların benzer bir soru sormasının bir başka nedeni de, döngü sınırlı depolama kullanmalarıdır. Daha fazla detay her zaman daha iyidir.
ewwhite

8
@ 100beyaz Linux makinelerini açıyorum ve sistem içeriğinin% 95'i aynı ve aynı kalacak - makineler klonlar. Dosya sisteminin aynı / salt okunur paylaşılan kısmını bir NFS depolama alanına aktarmak, oradan monte etmek ve bu şekilde önyüklemek istiyorum. Dosya sisteminin yalnızca / var, / tmp ve / home gibi yazılabilir bir kısmı her makine için yerel olarak kalacaktır. Potansiyel olarak yüz makine bir "kümenin" parçası olarak aynı anda önyükleme yapabildiğinden, erişilen NFS depolama bağlantısının önyükleme sırasında bir darboğaz olup olmayacağını tahmin etmeliyim.
amn

5
I need to estimate...sonra bir tane yapın ve ölçün.
symcbean

Yanıtlar:


8

Bir sistem kurun, önyükleyin ve /sys/block/${DEV}/statör /sys/block/sda/stat.

Belgelerden alıntı :

Stat dosyası, boşlukla ayrılmış 11 ondalık değer içeren tek bir metin satırından oluşur. Alanlar aşağıdaki tabloda özetlenmiş ve aşağıda daha ayrıntılı olarak açıklanmıştır:

Name            units         description
----            -----         -----------
read I/Os       requests      number of read I/Os processed
read merges     requests      number of read I/Os merged with in-queue I/O
read sectors    sectors       number of sectors read
read ticks      milliseconds  total wait time for read requests
write I/Os      requests      number of write I/Os processed
write merges    requests      number of write I/Os merged with in-queue I/O
write sectors   sectors       number of sectors written
write ticks     milliseconds  total wait time for write requests
in_flight       requests      number of I/Os currently in flight
io_ticks        milliseconds  total time this block device has been active
time_in_queue   milliseconds  total wait time for all requests

sektörleri oku, sektörleri yaz

Bu değerler, bu engelleme aygıtından okunan veya bu aygıta yazılan sektörlerin sayısını sayar. Söz konusu "sektörler", cihaza veya dosya sistemine özgü herhangi bir blok boyutu değil, standart UNIX 512 bayt sektörlerdir. G / Ç tamamlandığında sayaçlar artırılır.

Bayt sayısını daha kolay elde etmek için bu tek astarı kullanabilirsiniz:

awk '{printf("read %d bytes, wrote %d bytes\n", $3*512, $7*512)}' /sys/block/vda/stat

Scientific Linux 6.1 i386 için sonuçlar

Bunu Scientific Linux 6.1 i386 (RHEL'e benzer) çalıştıran bir KVM / qemu sanal makinesinde test ettim . Aşağıdaki hizmetler etkinleştirildi: acpid, auditd, crond, ağ, postfix, rsyslog, sshd ve udev-post. Takas ayrı bir diskte olduğu için dikkate alınmaz.

Oturum açma istemi göründükten birkaç saniye sonra SSH ile uzaktan alınan 85 bot için istatistikler:

    Name            Median   Average   Stdev
    -------------   ------   -------   -----
    read I/Os       1920     1920.2    2.6
    read merges     1158     1158.4    1.8
    read sectors    85322    85330.9   31.9
 >> read MiBytes    41.661   41.665    0.016
    read ticks      1165     1177.2    94.1
    write I/Os      33       32.6      1.7
    write merges    64       59.6      7.4
    write sectors   762      715.2     70.9
 >> write MiBytes   0.372    0.349     0.035
    write ticks     51       59.0      17.4
    in_flight       0        0.0       0.0
    io_ticks        895      909.9     57.8
    time_in_queue   1217     1235.2    98.5

Önyükleme süresi yaklaşık 20 saniye idi.


2
Bunun size aktarım talebini (miktar) değil, yalnızca aktarım talebini (miktar) verdiğini unutmayın. Ortalama bir sayı almak için çalışma zamanına bölebilirsiniz.
voretaq7

15

Yorumlarınızda bir netboot / ağ kök ortamını değerlendirdiğinizi söylüyorsunuz.

Fark etmeniz gereken ilk şey , "vanilya" diye bir şey yok - CentOS 5.10'u sıfır değişikliklerle kutudan çıkarmayacaksınız (eğer kendinizi kandırdığınızı düşünüyorsanız: NFS Kökü zaten en azından Çilek, Antepfıstığı

Belirli ortamınız için (gerçekten önemli olan) bir yanıt istiyorsanız, bir NFS sunucusu ve bir istemci makine kurmanız, önyüklemeniz ve ölçmeniz gerekir:

  1. Transfer (miktar)
  2. Verim (oran)

Her iki değer de performans açısından kritik öneme sahip olacaktır. Muhtemelen bir noktada birkaç istemci kurmak ve insanlar sistemleri günlüklerinde olduğu gibi kullandıklarında NFS sunucunuza / ağınıza ne tür bir kararlı durum talebi koyduklarını görmek için sistemin normal kullanımını simüle etmek isteyeceksiniz. iş.

Ayrıca bakınız: Kapasite Planlama serimiz - özellikle NFS hakkında konuşmuyoruz, ancak "Yap, Test Et, Stresle" genel ilkeleri geçerlidir.


1
Vanilyalı dondurma varsa, vanilya Linux var! ;-) Ciddi olsa, oldukça değiştirilmemiş CentOS 5.10, ve her türlü değiştirilmiş olanı yazılabilir dosya sistemi, bir parçasıdır olmaz devasa Postgres veritabanı içinde var, evet - bir faktör değildir bu yüzden, NFS dan monte edilebilir / var / lib ancak / var NFS'den bağlanmadı ancak yerel fiziksel başlangıç ​​diskinde. Ve eğer profil oluşturmak isteseydim, burada soruyu
sormazdım

10
@amn Profil oluşturma yapmak istemediğiniz için özür dilerim, ama yapmanız gerekeni yapmanız gerekiyor - sizin için geçerli sayıları izimizden çıkaramayız. Çözümünüz (NFS kökü) sağlam, zaman içinde test edilmiş bir çözümdür ve dürüst olmak gerekirse, muhtemelen kör bir şekilde sorunsuz bir şekilde dağıtabilirsiniz (on binlerce Sun Microsystems ortamı NFS-root & Netbooting'in en parlak günlerinde bu şekilde kör olarak dağıtıldı Solaris & harika çalıştı). Performans konusunda endişeleriniz varsa, özel ortamınıza yönelik talebi ve darboğazları belirlemek için profil yapmanız gerekir - bu sadece evrenin yoludur.
voretaq7

Çilek için +1
alexyorke

1
@ voretaq7 Profil oluşturma argümanı ile tartışamazsınız ve asla söylemezsiniz. Kollarımı açmadan ve NFS'yi kurmadan önce bir sonraki en iyi şeyi istedim. Değerli girdiniz için teşekkürler.
amn
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.