Pendahuluan
ulimit
adalah perintah shell Linux bawaan yang memungkinkan melihat atau membatasi jumlah sumber daya sistem yang dikonsumsi oleh pengguna individu. Membatasi penggunaan sumber daya sangat berharga di lingkungan dengan banyak pengguna dan masalah kinerja sistem.
Dalam tutorial ini, Anda akan belajar menggunakan ulimit
perintah di Linux dengan contoh.
Prasyarat
- Sistem yang menjalankan Linux
- Akses ke terminal
- Hak istimewa Sudo
Apa itu limit.conf?
limits.conf file adalah file konfigurasi yang mendefinisikan pengaturan alokasi sumber daya sistem ulimit
menggunakan. Path lengkap ke file konfigurasi adalah /etc/security/limits.conf .
Mengubah nilai dalam file tetap ada setelah sistem reboot. Izin pengguna super diperlukan untuk mengedit limits.conf berkas.
Bagian pertama dari limits.conf filenya seperti ini:
Penjelasanulimit, Soft Limit, dan Hard Limit di Linux
Bagian berikut menjelaskan ulimit
sintaks dan perbedaan antara dua jenis pembatasan sumber daya - batas lunak dan batas tegas .
Sintaks ulimit
ulimit
perintah mengambil sintaks umum berikut:
ulimit [flags][limit]
Misalnya, untuk mengatur ukuran memori fisik dalam kilobyte, masukkan:
ulimit -m 15000
Bendera
Gunakan ulimit
flag untuk melihat atau membatasi nilai individual untuk berbagai sumber daya sistem. Saat [limit]
diberikan, itu adalah nilai baru dari sumber daya yang ditentukan.
Bendera yang tersedia adalah:
Tandai | Deskripsi |
---|---|
-H | Batas keras untuk sumber daya yang diberikan. Hanya pengguna root yang dapat menaikkan batas keras, dan proses apa pun dapat menurunkannya. |
-S | Batas lunak untuk sumber daya yang diberikan. Proses apa pun dapat mengubah batas lunak. |
-a | Mencantumkan semua batas sumber daya saat ini. |
-b | Ukuran buffer soket maksimum. |
-c | Ukuran dump inti, dinyatakan dalam jumlah blok 512-byte. |
-d | Ukuran area data, dalam kilobyte. |
-e | Prioritas penjadwalan proses tertinggi (bagus). |
-f | Batas ukuran file dalam blok saat menggunakan [limit] parameter. Tidak menentukan [limit] menginstruksikan perintah untuk melaporkan batas ukuran file. |
-i | Batas jumlah sinyal yang tertunda. |
-k | Batas alokasi nomor antrian. |
-l | Ukuran maksimum yang diperbolehkan untuk mengunci di memori. |
-m | Ukuran memori fisik, dalam kilobyte. |
-n | Jumlah maksimum deskriptor file yang dapat dimiliki suatu proses. |
-p | Ukuran buffer pipa. |
-P | Jumlah maksimum pseudoterminal. |
-q | Jumlah maksimum byte dalam antrian pesan POSIX. |
-r | Jumlah maksimum utas yang dapat dimiliki suatu proses. |
-R | Waktu proses maksimum, dinyatakan dalam mikrodetik. |
-s | Ukuran tumpukan, dalam kilobyte. |
-t | Menentukan waktu berjalan maksimum suatu proses, dalam detik. |
-T | Batas jumlah thread. |
-u | Menentukan berapa banyak proses yang dapat dibuat pengguna. |
-v | Memori virtual maksimum yang tersedia untuk proses. |
-x | Jumlah maksimum kunci file. |
[limit]
Parameter
Menambahkan [limit]
melewati nilai baru untuk sumber daya yang ditentukan. Saat dihilangkan, perintah mencetak nilai batas lunak saat ini untuk sumber daya yang ditentukan, kecuali jika Anda menentukan -H
bendera.
Batas berlaku untuk batas lunak dan keras jika tidak ada -H
atau -S
bendera ditentukan.
Keluar dari Nilai
ulimit
perintah memiliki dua nilai keluar:
0
. Menandai penyelesaian yang berhasil.>0
. Permintaan untuk batas yang lebih tinggi ditolak atau terjadi kesalahan.
Batas Lunak
Batas sumber daya lunak adalah nilai yang diberlakukan oleh kernel untuk sumber daya yang sesuai. Batas lunak dapat dikelola oleh pengguna mana pun, dan nilai maksimumnya tidak dapat melebihi batas keras. Batas keras bertindak sebagai batas atas batas lunak.
Untuk melihat batas lunak terperinci untuk pengguna saat ini, jalankan:
ulimit -Sa
Batas Keras
Batas sumber daya keras mendefinisikan batas sumber daya fisik untuk pengguna. Pada saat yang sama, batas keras adalah nilai maksimum untuk batas lunak. Hanya pengguna root yang diizinkan untuk mengubah batas keras .
Untuk melihat batas keras terperinci untuk pengguna saat ini, jalankan:
ulimit -Ha
Cara Menggunakan ulimit
Jalankan ulimit
perintah dengan memasukkan nama perintah di terminal:
ulimit
Output menunjukkan jumlah sumber daya yang dapat diakses oleh pengguna saat ini. Dalam contoh ini, pengguna memiliki sumber daya sistem yang tidak terbatas. Untuk melihat atau menetapkan batas sumber daya individual, gunakan ulimit
. yang tersedia bendera.
Bagian berikut mencantumkan penggunaan paling umum dari ulimit
perintah.
Laporan Batas Terperinci
Dapatkan laporan mendetail dengan semua batas sumber daya untuk pengguna saat ini dengan menentukan -a
bendera:
ulimit -a
Outputnya berisi laporan terperinci tentang batas sumber daya untuk pengguna saat ini.
Batasi Nomor Proses
Batasi jumlah proses maksimum pengguna dengan menentukan -u
bendera dan jumlah proses.
Misalnya, kami akan membatasi nomor proses menjadi 10:
ulimit -u 10
Membatasi jumlah proses maksimum per pengguna mencegah mereka menggunakan semua sumber daya sistem. Membatasi jumlah proses juga mencegah efek buruk dari serangan potensial seperti fork bomb.
Misalnya:
Pada contoh di atas, pertama-tama kami membatasi nomor proses menjadi 10, dan kemudian mengeksekusi bom garpu. Bom garpu sebaliknya akan menghabiskan semua sumber daya dan membuat sistem tidak responsif.
Batasi Ukuran File
-f
flag mengatur ukuran file maksimum yang dapat dibuat pengguna. Misalnya, perintah berikut membatasi ukuran file hingga 50KB:
ulimit -f 50
Uji apakah batasnya berfungsi dengan membuat file yang lebih besar. Misalnya, kami menggunakan perintah cat untuk mengarahkan ulang /dev/zero output ke file, yang akan jauh lebih besar dari 50KB:
Output menyatakan bahwa batas ukuran file telah terlampaui. Periksa ukuran file dengan menjalankan:
ls -lh file
Output perintah ls menunjukkan bahwa ukuran file tepat 50 KB, yang merupakan batas yang telah kita tetapkan sebelumnya.
Batasi Memori Virtual Maksimum
Gunakan -v
flag untuk mengatur jumlah memori virtual maksimum yang tersedia untuk suatu proses. Membatasi memori virtual suatu proses akan menghentikannya menggunakan semua memori dan mencegah thrashing.
Misalnya, perintah berikut membatasi memori virtual yang tersedia untuk suatu proses hingga 1000KB:
ulimit -v 1000
Batasi Jumlah File yang Terbuka
-n
flag membatasi jumlah file yang dibuka secara bersamaan (deskriptor file). Contoh berikut menetapkan jumlah file yang terbuka menjadi lima:
ulimit -n 5
Untuk mengujinya, kami akan mencoba membuka beberapa file teks, yang menghasilkan kesalahan:
Edit file limit.conf untuk Mengubah Batas Lunak atau Batas Keras
Untuk mengubah batas lunak atau keras, edit nilai di limits.conf mengajukan.
Ikuti langkah-langkah di bawah ini:
1. Buka jendela terminal dan ubah direktori menjadi /etc/security
:
cd /etc/security
2. Buka limits.conf file menggunakan editor teks, seperti editor vim.
vim limits.conf
3. Ubah nilai batas dengan mengedit entri yang ada atau menambahkan yang baru. Setiap entri batasan memiliki empat bagian:
<domain>
. Mendefinisikan pengguna, grup, atau berisi karakter pengganti (*
atau%
).<type>
. Menerima dua nilai -soft
atauhard
.<item>
. Menerima salah satu nilai yang tercantum dalam file konfigurasi.<value>
. Nilai integer yang dinyatakan dalam unit yang terkait dengan<item>
.
Misalnya:
Pastikan untuk menghapus komentar pada baris saat mengedit file konfigurasi.