Semua parameter penyetelan TCP/IP terletak di direktori /proc/sys/net/. Misalnya, berikut adalah beberapa parameter penyetelan terpenting, beserta artinya:
1. /proc/sys/net/core/rmem_max — Buffer penerimaan data TCP maksimum
2. /proc/sys/net/core/wmem_max — Buffer pengiriman data TCP maksimum
3. /proc/sys/net/ipv4/tcp_timestamps — Stempel waktu ditambahkan ke header TCP sebanyak 12 byte (lihat RFC 1323).
4. /proc/sys/net/ipv4/tcp_sack — respons selektif
5. /proc/sys/net/ipv4/tcp_window_scaling — Mendukung jendela TCP yang lebih besar. Jika jendela TCP maksimum melebihi 65535 (64K), nilai ini harus ditetapkan ke 1
6. rmem_default — ukuran jendela penerimaan default
7. rmem_max — ukuran maksimum jendela penerima
8. wmem_default — ukuran jendela pengiriman default
9. wmem_max — ukuran maksimum jendela pengiriman
Semua konten di direktori /proc bersifat sementara, sehingga perubahan apa pun akan hilang setelah sistem dihidupkan ulang.
Disarankan untuk mengubah parameter TCP/IP secara otomatis saat sistem dimulai:
Tambahkan kode berikut ke file /etc/rc.local, lalu simpan file. Parameter TCP/IP berikut akan diubah secara otomatis saat sistem di-boot ulang:
gema 256960 > /proc/sys/net/core/rmem_default
gema 256960 > /proc/sys/net/core/rmem_max
gema 256960 > /proc/sys/net/core/wmem_default
gema 256960 > /proc/sys/net/core/wmem_max
gema 0 > /proc/sys/net/ipv4/tcp_timestamps
gema 1 > /proc/sys/net/ipv4/tcp_sack
gema 1 > /proc/sys/net/ipv4/tcp_window_scaling
Parameter TCP/IP sudah cukup jelas, ukuran jendela TCP diatur ke 256960, cap waktu TCP dinonaktifkan (batalkan penambahan 12 byte ke setiap header paket), jendela TCP yang lebih besar dan respons selektif TCP didukung.
Nilai di atas ditetapkan berdasarkan koneksi Internet dan tingkat bandwidth/latensi maksimum.
Catatan: Nilai-nilai dalam contoh di atas dapat digunakan dalam praktik, tetapi nilai-nilai tersebut hanya menyertakan sebagian parameter.
Metode lain: Gunakan /etc/sysctl.conf untuk mengonfigurasi parameter ke nilai yang Anda tetapkan saat sistem dimulai:
net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack =1
net.ipv4.tcp_window_scaling = 1
--------------------------------------------------- ---------------
/proc/sys/fs/super-max
File ini menentukan jumlah maksimum penangan superblock. Setiap sistem file yang dipasang memerlukan penggunaan superblock, jadi jika sejumlah besar sistem file yang dipasang, pengendali superblock mungkin habis.
Pengaturan bawaan: 256
/proc/sys/fs/super-nr
File ini menunjukkan jumlah superblock yang dialokasikan saat ini. File ini bersifat read-only dan digunakan untuk menampilkan informasi saja.
/proc/sys/kernel
/proc/sys/kernel/acct
File ini memiliki tiga nilai yang dapat dikonfigurasi yang mengontrol kapan proses akuntansi dimulai berdasarkan jumlah ruang kosong (dinyatakan dalam persentase) pada sistem file yang berisi log:
Jika ruang kosong berada di bawah nilai persentase ini, hentikan proses penghitungan
Jika ruang kosong lebih tinggi dari nilai persentase ini, mulailah proses penghitungan
Seberapa sering (dalam detik) kedua nilai di atas diperiksa
Untuk mengubah nilai dalam file ini, urutan angka yang dipisahkan spasi harus dikembalikan.
Pengaturan bawaan: 2 4 30
Nilai-nilai ini menyebabkan akuntansi dihentikan jika terdapat kurang dari 2% ruang kosong pada sistem file yang berisi jurnal, dan memulai akuntansi lagi jika terdapat 4% atau lebih ruang kosong. Pengecekan dilakukan setiap 30 detik.
/proc/sys/kernel/ctrl-alt-del
File ini memiliki nilai biner yang mengontrol bagaimana sistem bereaksi ketika menerima kombinasi tombol ctrl+alt+delete. Kedua nilai ini mewakili:
Nilai nol (0) berarti ctrl+alt+delete ditangkap dan dikirim ke program init. Ini akan memungkinkan sistem untuk mematikan dan memulai ulang dengan baik, sama seperti jika Anda memasukkan perintah shutdown.
Nilai satu (1) berarti ctrl+alt+delete tidak ditangkap dan non-clean shutdown akan dilakukan, seolah-olah daya dimatikan secara langsung.
Pengaturan bawaan: 0
/proc/sys/kernel/namadomain
File ini memungkinkan Anda untuk mengkonfigurasi nama domain jaringan. Ini tidak memiliki nilai default. Nama domain mungkin telah ditetapkan atau belum.
/proc/sys/kernel/nama host
File ini memungkinkan Anda untuk mengkonfigurasi nama host jaringan. Ini tidak memiliki nilai default, nama host mungkin telah ditetapkan atau belum.
/proc/ss/kernel/msgmax
File ini menentukan panjang maksimum pesan yang dikirim dari satu proses ke proses lainnya. Pengiriman pesan antar proses terjadi di memori kernel dan tidak ditukar ke disk, jadi jika Anda meningkatkan nilai ini, Anda akan meningkatkan jumlah memori yang digunakan oleh sistem operasi.
Pengaturan bawaan: 8192
/proc/sys/kernel/msgmnb
File ini menentukan jumlah byte maksimum dalam antrian pesan.
Pengaturan bawaan: 16384
/proc/sys/kernel/msgmni
File ini menentukan jumlah maksimum ID Antrean Pesan.
Pengaturan bawaan: 16
/proc/sys/kernel/panik
File ini menunjukkan berapa lama, dalam hitungan detik, kernel menunggu sebelum melakukan boot ulang jika terjadi "kernel panik". Pengaturan nol (0) detik akan menonaktifkan reboot jika terjadi kepanikan kernel.
Pengaturan bawaan: 0
/proc/sys/kernel/printk
File ini memiliki empat nilai numerik yang menentukan ke mana pesan logging dikirim berdasarkan kepentingannya. Untuk informasi selengkapnya tentang level log yang berbeda, baca halaman manual syslog(2). Empat nilai file ini adalah:
Tingkat log konsol: Pesan dengan prioritas lebih tinggi dari nilai ini akan dicetak ke konsol
Tingkat pencatatan pesan default: pesan tanpa prioritas akan dicetak dengan prioritas ini
Tingkat log konsol minimum: Nilai minimum yang dapat ditetapkan tingkat log konsol (prioritas tertinggi)
Tingkat log konsol default: Nilai default untuk tingkat log konsol
Pengaturan bawaan: 6 4 1 7
/proc/sys/kernel/shmall
File ini adalah jumlah total memori bersama (dalam byte) yang tersedia di sistem pada saat tertentu.
Pengaturan bawaan: 2097152
/proc/sys/kernel/shmax
File ini menentukan ukuran maksimum (dalam byte) dari segmen memori bersama yang diperbolehkan oleh kernel.
Pengaturan bawaan: 33554432
/proc/sys/kernel/shmmni
File ini mewakili jumlah maksimum segmen memori bersama yang digunakan untuk keseluruhan sistem.
Pengaturan bawaan: 4096
/proc/sys/kernel/sysrq
Jika nilai yang ditentukan dalam file ini bukan nol, Kunci Permintaan Sistem diaktifkan.
Pengaturan bawaan: 0
/proc/sys/kernel/threads-max
File ini menentukan jumlah maksimum thread yang dapat digunakan kernel.
Pengaturan bawaan: 2048
/proc/sys/net
/proc/sys/net/core/message_burst
Waktu (dalam 1/10 detik) yang diperlukan untuk menulis pesan peringatan baru; pesan peringatan lain yang diterima selama waktu ini akan dibuang. Hal ini digunakan untuk mencegah serangan Denial of Service yang digunakan oleh seseorang yang mencoba "membanjiri" sistem Anda dengan pesan.
Pengaturan default: 50 (5 detik)
/proc/sys/net/core/message_cost
File ini menyimpan nilai biaya yang terkait dengan setiap pesan peringatan. Semakin besar nilainya, semakin besar kemungkinan pesan peringatan tersebut diabaikan.
Pengaturan bawaan: 5
/proc/sys/net/core/netdev_max_backlog
File ini menentukan jumlah maksimum paket yang diperbolehkan untuk dimasukkan ke dalam antrian ketika antarmuka menerima paket lebih cepat daripada kemampuan kernel untuk memprosesnya.
Pengaturan bawaan: 300
/proc/sys/net/core/optmem_max
File ini menentukan ukuran buffer maksimum yang diperbolehkan untuk setiap soket.
/proc/sys/net/core/rmem_default
File ini menentukan nilai default untuk ukuran buffer soket penerima dalam byte.
/proc/sys/net/core/rmem_max
File ini menentukan ukuran buffer soket penerimaan maksimum dalam byte.
/proc/sys/net/core/wmem_default
File ini menentukan nilai default untuk ukuran buffer soket pengiriman dalam byte.
/proc/sys/net/core/wmem_max
File ini menentukan ukuran buffer soket pengiriman maksimum dalam byte.
/proc/sys/net/ipv4
Semua parameter IPv4 dan IPv6 didokumentasikan dalam dokumentasi kode sumber kernel. Lihat file /usr/src/linux/Documentation/networking/ip-sysctl.txt.
/proc/sys/net/ipv6
Sama seperti IPv4.
/proc/sys/vm
/proc/sys/vm/buffermem
File ini mengontrol jumlah keseluruhan memori sistem yang digunakan untuk memori buffer (dinyatakan dalam persentase). Ini memiliki tiga nilai, yang diatur dengan menulis urutan angka yang dipisahkan oleh spasi ke file.
Persentase minimum memori yang digunakan untuk buffer
Jika terjadi situasi dimana tidak banyak memori sistem yang tersisa dan memori sistem berkurang, sistem akan berusaha mempertahankan jumlah memori buffer.
Persentase maksimum memori yang digunakan untuk buffer
Pengaturan bawaan: 2 10 60
/proc/sys/vm/freepages
File ini mengontrol bagaimana sistem merespons berbagai tingkat memori yang tersedia. Ini memiliki tiga nilai, yang diatur dengan menulis urutan angka yang dipisahkan oleh spasi ke file.
Kernel hanya diperbolehkan mengalokasikan sebagian memori jika jumlah halaman yang tersedia di sistem mencapai batas minimum.
Jika jumlah halaman kosong dalam sistem berada di bawah batas ini, kernel akan memulai pertukaran dengan cara yang lebih agresif untuk mengosongkan memori dan menjaga kinerja sistem.
Kernel akan mencoba untuk menjaga jumlah memori sistem tetap tersedia. Nilai di bawah ini akan mengaktifkan pertukaran kernel.
Pengaturan bawaan: 512 768 1024
/proc/sys/vm/kswapd
File ini mengontrol bagaimana kernel diperbolehkan untuk menukar memori. Ini memiliki tiga nilai, yang ditetapkan dengan menulis urutan angka yang dipisahkan spasi ke file:
Jumlah maksimum halaman yang coba dibebaskan oleh kernel pada satu waktu. Jika Anda ingin menambah bandwidth selama pertukaran memori, Anda perlu meningkatkan nilai ini.
Frekuensi minimum kernel mencoba mengosongkan satu halaman per swap.
Jumlah halaman yang ditulis oleh kernel dalam satu swap. Hal ini memiliki dampak terbesar pada kinerja sistem. Semakin besar nilainya, semakin banyak data yang dipertukarkan dan semakin sedikit waktu yang dihabiskan untuk pencarian disk. Namun, nilai yang terlalu besar dapat berdampak buruk pada kinerja sistem dengan "membanjiri" antrian permintaan.
Pengaturan bawaan: 512 32 8
/proc/sys/vm/pagecache
File ini melakukan pekerjaan yang sama seperti /proc/sys/vm/buffermem, tetapi merupakan peta memori file dan cache umum.
Jadikan pengaturan kernel tetap ada
Utilitas praktis disediakan di sini untuk mengubah parameter kernel apa pun di direktori /proc/sys. Ini memungkinkan Anda untuk mengubah kernel yang sedang berjalan (mirip dengan metode gema dan pengalihan yang digunakan di atas), tetapi juga memiliki file konfigurasi yang dijalankan saat sistem melakukan booting. Hal ini memungkinkan Anda membuat perubahan pada kernel yang sedang berjalan dan menambahkan perubahan tersebut ke file konfigurasi sehingga perubahan tersebut tetap ada saat sistem di-boot ulang.
Utilitas ini disebut sysctl dan didokumentasikan sepenuhnya di halaman manual untuk sysctl(8). File konfigurasi sysctl adalah /etc/sysctl.conf, yang dapat diedit dan dicatat di bawah sysctl.conf(8). sysctl memperlakukan file di bawah /proc/sys sebagai variabel individual yang dapat diubah. Oleh karena itu, dengan mengambil file /proc/sys/fs/file-max di bawah /proc/sys sebagai contoh, ini mewakili jumlah maksimum pegangan file yang diperbolehkan dalam sistem.
Contoh ini mengungkapkan beberapa hal menakjubkan tentang notasi sysctl. Karena sysctl hanya dapat mengubah variabel di direktori /proc/sys, dan orang-orang selalu berpikir bahwa variabel ada di direktori ini, maka bagian dari nama variabel (/proc/sys) dihilangkan. Perubahan lain yang perlu diperhatikan adalah penggantian pemisah direktori (garis miring /) dengan titik bahasa Inggris (titik).
Ada dua aturan sederhana untuk mengonversi file di /proc/sys menjadi variabel di sysctl:
Hapus bagian depan /proc/sys.
Ubah garis miring pada nama file menjadi titik.
Kedua aturan ini memungkinkan Anda mengonversi nama file apa pun di /proc/sys menjadi nama variabel apa pun di sysctl. Konversi umum dari file ke variabel adalah:
/proc/sys/dir/file --> dir.file
dir1.dir2.file --> /proc/sys/dir1/dir2/file
Anda dapat menggunakan perintah sysctl -a untuk melihat semua variabel yang dapat diubah dan pengaturannya saat ini.
Variabel juga dapat diubah menggunakan sysctl, yang melakukan hal yang persis sama seperti metode echo yang digunakan di atas. Representasinya adalah:
sysctl -w dir.file="nilai"
Menggunakan file-max sebagai contoh lagi, gunakan salah satu dari dua metode berikut untuk mengubah nilainya menjadi 16384.