Berapa banyak data yang dibaca Linux pada booting rata-rata?

9

Saya bertanya-tanya berapa banyak data total yang dibaca oleh sistem Linux vanilla yang baru (seperti CentOS 5.10) agar dapat masuk ke konsol konsol shell prompt? Anda tahu, membaca semua file konfigurasi, memuat binari, citra kernel, dll.

Saya mencari taksiran besaran-besaran. Saya sadar bahwa boot Linux sangat bervariasi berkaitan dengan detail proses. Apakah kita berbicara 10 MB? 100MB? 1 GB?

amn
sumber
5
Kenapa kamu bertanya?
Zoredache
2
Variabilitasnya adalah (bisa) urutan besarnya antara sistem - memuat kernel & driver adalah fraksi terkecil dari proses boot, dan skrip init pada suatu sistem dapat melakukan apa saja secara harfiah sebelum Anda mendapatkan prompt login. Tolong jelaskan situasi yang Anda hadapi sehubungan dengan masalah praktis dan aktual yang dapat kami bantu selesaikan.
voretaq7
1
@ amn Dapatkah Anda memberikan alasannya pada pertanyaan awal Anda? Ini akan membantu dengan konteks. Alasan lain orang akan mengajukan pertanyaan serupa adalah jika mereka menggunakan penyimpanan terbatas siklus. Lebih detail selalu lebih baik.
ewwhite
8
@ewwhite Saya mem-boot 100-an mesin Linux, dan 95% dari isi sistem mereka identik dan akan tetap identik - mesin-mesin itu adalah klon. Saya ingin melepas bagian sistem file yang identik / hanya baca, ke penyimpanan NFS, pasang dari sana, dan boot seperti itu. Hanya bagian yang dapat ditulisi dari sistem file, seperti / var, / tmp dan / home, akan tetap lokal untuk setiap mesin. Karena berpotensi seratus mesin dapat boot secara bersamaan sebagai bagian dari "cluster", saya perlu memperkirakan apakah tautan penyimpanan NFS yang diakses akan menjadi hambatan saat booting dari.
amn
5
I need to estimate...lalu lakukan satu dan ukurlah.
symcbean

Jawaban:

8

Instal satu sistem, booting dan periksa statistik lapisan blok dari /sys/block/${DEV}/statmis /sys/block/sda/stat.

Mengutip dari dokumentasi :

File stat terdiri dari satu baris teks yang berisi 11 nilai desimal yang dipisahkan oleh spasi. Bidang dirangkum dalam tabel berikut, dan dijelaskan secara lebih rinci di bawah ini:

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

baca sektor, tulis sektor

Nilai-nilai ini menghitung jumlah sektor yang dibaca atau ditulis ke perangkat blok ini. "Sektor" yang dimaksud adalah sektor standar UNIX 512-byte, bukan ukuran blok spesifik perangkat atau sistem file. Penghitung bertambah ketika I / O selesai.

Anda dapat menggunakan one-liner ini untuk mendapatkan jumlah byte lebih mudah:

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

Hasil untuk Scientific Linux 6.1 i386

Saya menguji ini pada mesin virtual KVM / qemu yang menjalankan Scientific Linux 6.1 i386 (yang mirip dengan RHEL). Layanan berikut ini diaktifkan: acpid, auditd, crond, jaringan, postfix, rsyslog, sshd dan udev-post. Swap berada di disk terpisah, jadi tidak diperhitungkan.

Statistik untuk 85 booting, diambil dari jarak jauh dengan SSH beberapa detik setelah prompt masuk muncul, adalah:

    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

Waktu boot sekitar 20 detik.

Cristian Ciupitu
sumber
2
Perhatikan bahwa ini sepertinya hanya memberi Anda permintaan transfer (kuantitas), bukan permintaan throughput (tarif). Anda bisa membagi dengan uptime untuk mendapatkan angka rata-rata.
voretaq7
15

Anda mengatakan dalam komentar Anda bahwa Anda mengevaluasi lingkungan root jaringan / netboot.

Hal pertama yang harus Anda sadari adalah tidak ada yang namanya "vanilla" - Anda tidak akan menjalankan CentOS 5.10 langsung dari kotak tanpa perubahan nol (jika Anda pikir Anda menipu diri sendiri: NFS Root sudah setidaknya Strawberry, hampir di Pistachio).

Jika Anda menginginkan jawaban untuk lingkungan spesifik Anda (yang benar-benar diperhitungkan), Anda perlu menyiapkan server NFS dan mesin klien, boot, dan ukur:

  1. Transfer (jumlah)
  2. Throughput (tingkat)

Kedua nilai akan sangat penting untuk kinerja. Anda mungkin juga ingin mengatur beberapa klien di beberapa titik dan mensimulasikan penggunaan normal sistem untuk melihat jenis permintaan mapan yang mereka berikan pada server / jaringan NFS Anda ketika orang menggunakan sistem seperti yang akan mereka lakukan sehari-hari kerja.

Lihat juga: Seri kami tentang Perencanaan Kapasitas - kami tidak berbicara secara khusus tentang NFS, tetapi prinsip-prinsip umum "Bangun, Uji, Stres" berlaku.

voretaq7
sumber
1
Jika ada icecream vanilla, ada vanilla Linux! ;-) Serius, itu adalah CentOS 5.10 yang tidak berubah, dan apa pun yang diubah adalah bagian dari sistem file yang dapat ditulisi, yang tidak akan di-mount dari NFS, jadi itu bukan faktor - ya, ada database Postgres raksasa di / var / lib but / var tidak di-mount dari NFS tetapi pada disk startup fisik lokal. Dan jika saya ingin profil itu, saya tidak akan mengajukan pertanyaan di sini :-)
amn
10
@ am, maaf Anda tidak ingin melakukan profil, tetapi Anda harus melakukan apa yang harus Anda lakukan - kami tidak dapat menarik nomor yang berlaku dari pantat kami untuk Anda. Solusi Anda (root NFS) adalah suara, yang telah teruji oleh waktu, dan jujur ​​Anda mungkin dapat menggunakannya secara buta tanpa masalah (puluhan ribu lingkungan Sun Microsystems dikerahkan secara buta seperti itu di masa kejayaan NFS-root & Netbooting Solaris & bekerja sangat baik). Jika Anda khawatir tentang kinerja, Anda harus melakukan profil untuk menentukan permintaan dan hambatan untuk lingkungan spesifik Anda - itu hanya cara alam semesta.
voretaq7
+1 untuk strawberry
alexyorke
1
@ voretaq7 Tidak dapat berdebat dengan argumen profil, dan tidak pernah melakukannya. Saya hanya menginginkan hal terbaik berikutnya sebelum saya menyingsingkan lengan baju saya dan mengatur NFS. Terima kasih atas masukan Anda yang berharga.
amn