GNU/Linux >> Belajar Linux >  >> Linux

Cara Mempercepat Proses Boot Linux menggunakan Contoh Perintah Startpar

Dalam skenario umum, selama proses boot, skrip startup sistem run-level dijalankan satu per satu.

Skrip startup level run tertentu tidak akan dijalankan hingga skrip sebelumnya dieksekusi sepenuhnya. Jika layanan tertentu selama pengaktifan terhenti karena suatu alasan, mungkin diperlukan beberapa saat sebelum waktu habis dan beralih ke skrip pengaktifan berikutnya.

Utilitas Startpar digunakan untuk menjalankan beberapa skrip run-level secara paralel. Ini membantu mempercepat proses boot server Anda.

Utilitas Startpar adalah bagian dari paket sysvinit.

Sintaks umum untuk startpar diberikan di bawah ini:

startpar –p par –i iorate –t timeout –T global timeout –a arg prg1 prg2

startpar –p par –I iorate –t timeout –T global timeout –M boot|start|stop

Berikut ini adalah berbagai pilihan startpar:

  • -p Jumlah proses untuk dijalankan secara paralel.
  • -i Mengubah faktor penimbangan blok proses. Standarnya adalah 800.
  • -t Timeout untuk mengosongkan buffer skrip jika tidak ada output yang terjadi.
  • -T Batas waktu global. Ini digunakan untuk menghapus output buffer dari skrip sebelumnya .
  • -a Argumen yang akan diberikan ke semua skrip.
  • -M Beralih startpar ke mode "buat".
  • -P Tentukan run-level sebelumnya
  • -N Tentukan run-level berikutnya

Saat startpar mengeksekusi skrip run-level, output skrip di-buffer untuk memungkinkan penulisan terkontrol ke fasilitas logging.

Jika skrip lain berjalan secara paralel, maka skrip tersebut menunggu logging selesai dan kemudian menulis data dari buffer ke area logging. Opsi –t dan –T digunakan untuk mengontrol pembersihan buffer ini tergantung pada waktu sejak output terakhir yang ditangkap ke buffer.

Di sistem saya, saya memiliki versi berikut untuk startpar:

# startpar -v
startpar version 0.54

Perintah Startpar dapat digunakan dalam mode “make” menggunakan opsi –M. Dalam mode ini, startpar menggunakan file berikut untuk memutuskan bagaimana menjalankan skrip startup.
/etc/init.d/.depend.start
/etc/init.d/.depend.stop
/etc/init.d/.depend.boot

Berikut ini contoh file .depend.start:

# cat /etc/init.d/.depend.start
TARGETS = halt fbset lvm_wait_merge_snapshot microcode.ctl earlysyslog dbus acpid random purge-kernels reboot network haldaemon boot.clock syslog ford_tso_off Sts splash_early haveged rpcbind multipathd nfs smbfs kbd irq_balancer alsasound mcelog network-remotefs sshd java.binfmt_misc clamd logd gpm ntp single atd clamav-milter canna amavis cups nscd postfix xdm cron smartd
INTERACTIVE = kbd ntp single
network: dbus
haldaemon: dbus acpid
syslog: network earlysyslog
ford_tso_off: network
Sts: network
splash_early: syslog
haveged: syslog random
rpcbind: syslog
multipathd: syslog
nfs: rpcbind
.
.
.
.
mcelog: smbfs
network-remotefs: smbfs haldaemon

Dalam mode “make”, startpar menggunakan file .depend.start untuk menemukan layanan dependen mana yang perlu dimulai untuk memulai layanan tertentu.

Pada ouput di atas, ketika startpar dijalankan dengan mode start menggunakan opsi make, skrip dependen dijalankan terlebih dahulu sebelum skrip dieksekusi secara paralel.

Berikut adalah contoh bagaimana startpar dapat digunakan dalam mode make selama urutan startup sistem,

# startpar -p 4 -t 20 -T 3 -M start -P N -R 2
D-Bus already started. Not starting.
Starting acpid                    done
Re-Starting syslog services       done
Starting service at daemon        done
Starting sound driver             done
Starting cupsd                    done
Starting CRON daemon/usr/sbin/cron: can't lock /var/run/cron.pid, otherpid may be 3506: Resource temporarily unavailable
startproc:  exit status of parent of /usr/sbin/cron: 1
                                  done
Starting irqbalance                                                       unused
HAL already started. Not starting.
Starting mcelog... already running                                        done
Setting up network interfaces:
    eth0      device: Intel Corporation 82545EM Gigabit Ethernet Co
    eth0      IP address: 19.86.xxx.xxx/24                                done
    eth1      device: Intel Corporation 82545EM Gigabit Ethernet Co
    eth1      IP address: 19.86.xxx.xxx/24                                done
Setting up service network  .  .  .  .  .  .  .  .  .  .                  done
Hint: you may set mandatory devices in /etc/sysconfig/network/config
Setting up (remotefs) network interfaces:
Setting up service (remotefs) network  .  .  .  .  .  .  .  .  .  .       done
Initializing random number generator                                      done
Starting smartd                                                           unused
Disabling TSO on all interfaces and adding ETHTOOL_OPTIONS to nic config files  done
Re-Starting syslog services              done
Starting haveged daemon                  done
failed_service="alsasound"
skipped_service="irq_balancer smartd"

Pada contoh di atas, startpar dijalankan dengan jumlah total 4 proses untuk berjalan secara paralel dengan batas waktu 20 detik, batas waktu global 3 detik untuk mengosongkan area buffer, -M dalam mode make dengan opsi "mulai" untuk menunjukkan startup adalah digunakan dalam urutan awal.

Ini akan menggunakan /etc/init.d/.depend. start file untuk memverifikasi skrip yang saling bergantung. –P adalah run-level sebelumnya –N adalah runlevel baru.

Berikut adalah contoh lain untuk menggunakan startpar hanya untuk menjalankan 2 skrip secara paralel, Anda juga dapat menentukan skrip ini di /etc/init.d/rc untuk memastikan skrip ini dimulai secara paralel selama startup sistem jika diperlukan.

# startpar -p 4 -t 20 -T 3 -a start /etc/init.d/ypxfrd /etc/init.d/drbd
Starting rpc.ypxfrd              done
Starting DRBD resources:
.
.

Juga di beberapa distro Linux, Anda dapat mengatur sistem untuk menggunakan opsi startpar di file /etc/init.d/rc.

Dalam file rc, cukup ubah nilai “CONCURRENCY=SHELL” menjadi “CONCURRENCY=STARTPAR”, yang akan menghitung dependensi secara otomatis dan memulai skrip yang berlaku secara paralel.

# vi /etc/init.d/rc
CONCURRENCY=STARTPAR

Linux
  1. Cara Reboot Linux Menggunakan Command Line

  2. 5 Contoh Perintah Fuser Linux Praktis

  3. Cara Mengubah Prioritas Proses menggunakan Linux Contoh Nice dan Renice

  1. Cara Menavigasi Baris Perintah Linux Menggunakan Keybinding (Contoh Perintah Ctrl Linux)

  2. Cara Menambahkan Beberapa Rute di Linux Menggunakan Contoh Perintah ip

  3. Contoh penggunaan perintah dmsetup di Linux

  1. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  2. Contoh Perintah renice di Linux

  3. Contoh Perintah pkill di Linux