Dalam beberapa bulan belakangan ini kita telah melihat bagaimana para pengembang menyadari tentang pentingnya desain yang baik dalam mempercepat kinerja perangkat lunak, mulai dari pengembangan situs, browser, sistem operasi dan kini kecepatan boot yang menjadi sorotan utama di konferensi pengembang Linux yang berlangsung bulan lalu.
Definisi Selesai Boot
Bagaimana mereka menghasilkan terobosan baru ini? Pertama, Arjan mengatakan definisi "selesai boot adalah saat CPU dan hard disk (HD) tidak bekerja lagi," dan ini berarti tidak menampilkan desktop saat masih memulai berbagai aplikasi di balik layar (seperti yang dilakukan Microsoft, itulah sebabnya mengapa saat pertama kali login Anda harus menunggu selama beberapa saat sebelum dapat mulai menggunakan PC).Waktu "selesai boot" tidak termasuk mendapatkan koneksi jaringan (DHCP), akan tetapi sudah mengikutkan waktu yang dibutuhkan untuk memulai NetworkManager. Sebuah sistem dengan HD akan membutuhkan waktuyang lebih lama untuk boot, tetapi Arjan mengatakan ia telah mencoba menggunakan konfigurasi yang sama di ThinkPad dan mendapatkan waktu boot 10 detik, tetap merupakan kemajuan yang sangat besar.
Konfigurasi Kurang Optimal
Menggunakan aplikasi Bootchart, kita dapat melihat jalannya proses boot Linux (Fedora) seperti yang diperlihatkan grafik di bawah ini:- Menghabiskan satu detik penuh untuk memeriksa loopback
- Menghabiskan dua detik untuk memulai sendmail — "semua orang terpaksa memulai program ini hanya karena ada seseorang di luar sana yang membutuhkan sebuah mail server," ujar Arjan
- Menghabiskan lima detik untuk memulai "settroubleshootd," aplikasi troubleshooting untuk konfigurasi SELinux
- X Window System memulai C preprocessor dan compiler saat boot
- Menghabiskan 12 detik untuk "modprobe" yang akhirnya mengaktifkan semua modul yang ada
- Menghabiskan 2,5 detik untuk memulai aplikasi yang mengaktifkan driver restricted yang tidak dibutuhkan di konfigurasi bawaan Ubuntu
- Menghabiskan 2,5 detik untuk menampilkan gambar background di GDM
Optimisasi Kernel
Langkah pertama untuk mencapai target boot dalam 5 detik adalah mengalokasikan jatah waktu boot:- Kernel diberikan jatah 1 detik untuk mengaktifkan semua modul yang dibutuhkan
- Early boot diberikan jatah 1 detik, sudah termasuk skrip init dan background task
- X diberikan jatah 1 detik
- Desktop environment diberikan jatah 2 detik
Beberapa modifikasi kernel memungkinkan inisialisasi beberapa komponen secara bersamaan. Contohnya kernel yang telah dimodifikasi Arjan mengaktifkan Advanced Host Controller Interface (AHCI untuk media penyimpanan) bersamaan dengan Universal Host Controller Interface (UHCI untuk USB). Arjan mengatakan bahwa mereka "kemungkinan besar dapat menyelesaikan boot kernel hanya dalam setengah detik tetapi kita berhenti mengoptimisasi-nya setelah berhasil mencapai target satu detik," tetapi waktu ini seharusnya berkurang menjadi setengah detik di versi 2.6.28 karena AHCI yang sudah diperbaharui.
Satu lagi perubahan di kernel adalah sebuah patch untuk mendukung "readahead."
Readahead dan Init
Fedora menggunakan "Upstart" menggantikan "init" yang biasanya merupakan program userspace pertama yang diaktifkan. Akan tetapi kedua pengembang ini kembali menggunakan "init" untuk memulai tiga kelompok aplikasi secara bersamaan:- Proses "sReadahead" untuk membaca untuk menyimpan isi HD ke dalam memori
- Memeriksa filesystem, D-Bus, X kemudian desktop
- Hardware Abstraction Layer (HAL), "udev" dan komponen jaringan
Kesimpulannya, Arjan mengatakan bahwa pernyataan "membuat proses boot lebih cepat" adalah target yang salah. Target yang benar adalah "membuat boot cepat" dan jangan membuat semua pengguna menunggu hanya karena segelintir pengguna menggunakan filesystem atau aplikasi tertentu seperti "sendmail" di laptop mereka. Hanya beberapa hari setelah itu, Kyle McMartin mengumumkan bahwa baik Fedora maupun Ubuntu telah memperbaiki beberapa hal di proses boot mereka.
0 comments:
Post a Comment