Difference between revisions of "OS: Tuning Network"

From OnnoWiki
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
Howto ini mengasumsikan bahwa mesin yang disetel terlibat dalam mendukung aplikasi-bandwidth tinggi. Membuat modifikasi ini pada mesin yang mendukung beberapa pengguna dan / atau beberapa sambungan tidak dianjurkan - dapat menyebabkan mesin untuk menolak koneksi karena kurangnya alokasi memori.
 
Howto ini mengasumsikan bahwa mesin yang disetel terlibat dalam mendukung aplikasi-bandwidth tinggi. Membuat modifikasi ini pada mesin yang mendukung beberapa pengguna dan / atau beberapa sambungan tidak dianjurkan - dapat menyebabkan mesin untuk menolak koneksi karena kurangnya alokasi memori.
 +
 +
Teknik tuning network yang akan di jelaskan disini ada dua (2), yaitu:
 +
 +
* Tuning Buffer / Memory
 +
* Tuning besar paket (Max Transmission Unit).
 +
  
 
==Langkah==
 
==Langkah==
Line 12: Line 18:
  
  
  Type: sysctl -p | grep mem
+
  sysctl -a | grep mem
 
   
 
   
 
Ini akan menampilkan pengaturan buffer anda saat ini. Simpan ini! Anda mungkin ingin mengembalikan perubahan ke asal
 
Ini akan menampilkan pengaturan buffer anda saat ini. Simpan ini! Anda mungkin ingin mengembalikan perubahan ke asal
  
  
  Type: sysctl -w net.core.rmem_max=8388608
+
  sysctl net.core.rmem_max
 +
sysctl -w net.core.rmem_max=8388608
  
 
Ini menetapkan ukuran buffer penerima di OS untuk semua jenis koneksi.
 
Ini menetapkan ukuran buffer penerima di OS untuk semua jenis koneksi.
  
  
  Type: sysctl -w net.core.wmem_max=8388608
+
  sysctl -w net.core.wmem_max=8388608
 
   
 
   
 
Ini menetapkan ukuran buffer max di OS untuk semua jenis koneksi.
 
Ini menetapkan ukuran buffer max di OS untuk semua jenis koneksi.
  
 
+
sysctl net.core.rmem_default
  Type: sysctl -w net.core.rmem_default=65536
+
  sysctl -w net.core.rmem_default=65536
  
 
Ini menetapkan ukuran buffer penerima default di OS untuk semua jenis koneksi.
 
Ini menetapkan ukuran buffer penerima default di OS untuk semua jenis koneksi.
  
  
  Type: sysctl -w net.core.wmem_default=65536
+
  sysctl -w net.core.wmem_default=65536
  
 
Ini menetapkan ukuran buffer pengirim default di OS untuk semua jenis koneksi.
 
Ini menetapkan ukuran buffer pengirim default di OS untuk semua jenis koneksi.
  
  
  Type: sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608'
+
  sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608'
  
 
Setting TCP Autotuning. "Variabel tcp_mem mendefinisikan bagaimana stack TCP harus bersikap ketika saat penggunaan memori. ... Nilai pertama ditentukan dalam variabel tcp_mem memberitahu ambang rendah kernel. Di bawah titik ini, tumpukan TCP tidak peduli sama sekali untuk melakukan tekanan pada penggunaan memori oleh soket TCP yang berbeda. ... Nilai kedua memberitahukan kernel di mana titik untuk memulai menekan penggunaan memori ke bawah. ... Nilai akhir memberitahu kernel berapa banyak halaman memori mungkin digunakan secara maksimal. Jika nilai ini tercapai, aliran TCP dan paket mulai dibuang sampai kita mencapai penggunaan memori yang lebih rendah lagi. Nilai ini mencakup semua soket TCP yang sedang digunakan."
 
Setting TCP Autotuning. "Variabel tcp_mem mendefinisikan bagaimana stack TCP harus bersikap ketika saat penggunaan memori. ... Nilai pertama ditentukan dalam variabel tcp_mem memberitahu ambang rendah kernel. Di bawah titik ini, tumpukan TCP tidak peduli sama sekali untuk melakukan tekanan pada penggunaan memori oleh soket TCP yang berbeda. ... Nilai kedua memberitahukan kernel di mana titik untuk memulai menekan penggunaan memori ke bawah. ... Nilai akhir memberitahu kernel berapa banyak halaman memori mungkin digunakan secara maksimal. Jika nilai ini tercapai, aliran TCP dan paket mulai dibuang sampai kita mencapai penggunaan memori yang lebih rendah lagi. Nilai ini mencakup semua soket TCP yang sedang digunakan."
  
  
  Type: sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'
+
  sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'
 +
 
 +
TCP Autotuning setting. "Nilai pertama memberitahu kernel buffer penerima minimal menerima untuk setiap koneksi TCP, dan buffer ini selalu dialokasikan ke soket TCP, bahkan di bawah tekanan tinggi pada sistem. ... Nilai kedua memberitahu kernel default buffer penerima yang dialokasikan untuk masing-masing soket TCP. Nilai ini menimpa nilai /proc /sys/net/core/rmem_default yang digunakan oleh protokol lain. ... Nilai ketiga dan terakhir ditetapkan dalam variabel ini menentukan maksimum buffer penerima yang dapat dialokasikan untuk socket TCP."
  
TCP Autotuning setting. "The first value tells the kernel the minimum receive buffer for each TCP connection, and this buffer is always allocated to a TCP socket, even under high pressure on the system. ... The second value specified tells the kernel the default receive buffer allocated for each TCP socket. This value overrides the /proc/sys/net/core/rmem_default value used by other protocols. ... The third and last value specified in this variable specifies the maximum receive buffer that can be allocated for a TCP socket."
 
  
 +
sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608'
  
  Type: sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608'
+
TCP Autotuning setting. "Variabel ini mengambil 3 nilai yang berbeda yang memegang informasi tentang berapa banyak ruang memori TCP sendbuffer yang harus digunakan pada setiap socket TCP. Setiap socket TCP memiliki ruang buffer sebanyak ini yang dapat digunakan sebelum buffer penuh. Masing-masing dari tiga nilai yang digunakan dalam kondisi yang berbeda. ... Nilai pertama dalam variabel ini menentukan ruang buffer minimum pengirim TCP yang tersedia untuk soket TCP tunggal. ... Nilai kedua dalam variabel memberitahu kita ruang buffer standar memungkinkan untuk digunakan untuk soket TCP tunggal. ... Nilai ketiga memberitahu kernel ruang buffer pengirim TCP maksimal."
  
TCP Autotuning setting. "This variable takes 3 different values which holds information on how much TCP sendbuffer memory space each TCP socket has to use. Every TCP socket has this much buffer space to use before the buffer is filled up. Each of the three values are used under different conditions. ... The first value in this variable tells the minimum TCP send buffer space available for a single TCP socket. ... The second value in the variable tells us the default buffer space allowed for a single TCP socket to use. ... The third value tells the kernel the maximum TCP send buffer space."
 
  
  Type:sysctl -w net.ipv4.route.flush=1
+
  sysctl -w net.ipv4.route.flush=1
  
This will enusre that immediatly subsequent connections use these values.
+
Ini akan memastikan bahwa sambungan selanjutnya menggunakan nilai-nilai ini.
  
 
==Langkah Cepat==
 
==Langkah Cepat==
Line 70: Line 78:
  
  
 +
==Tuning Max Transmission Unit==
 +
 +
Jika tuning buffer / memory masih tidak mempan untuk menolong kinerja jaringan. Kita dapat mengurangi panjang paket yang di ijinkan melalui interface agar panjang buffer yang dibutuhkan menjadi sedikit.
 +
 +
Panjang normal paket Ethernet adalah sekitar 1500byte. Ini di tentukan di Max Transmission Unit (MTU) dari interface. Kita dapat memperkecil panjang paket dengan menset MTU Interface menjadi lebih kecil dari 1500, misalnya,
 +
 +
ifconfig eth0 mtu 500
  
 +
Ini akan menset panjang max paket menjadi 500byte.
 +
 +
Memperpendek panjang paket akan berkonsekuensi juga memperkecil probabilitas tabrakan paket di jaringan. Memang konsekuensi yang akan di tanggung adalah proses transfer akan membutuhkan overhead protokol yang lebih banyak yang akibatkan memperlambat proses transfer.
  
  
Line 78: Line 96:
  
 
* http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php
 
* http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php
 +
 +
 +
==Pranala Menarik==
 +
 +
* [[OS: Tuning TCP Presistance]]

Latest revision as of 07:54, 5 January 2023

Sumber: http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php

Ini adalah langkah yang sangat dasar dengan deskripsi langkah bagaimana meningkatkan kinerja jaringan (TCP & UDP) di Linux 2.4+ untuk aplikasi-bandwidth tinggi. Pengaturan ini sangat penting untuk link GigE.

Assumsi

Howto ini mengasumsikan bahwa mesin yang disetel terlibat dalam mendukung aplikasi-bandwidth tinggi. Membuat modifikasi ini pada mesin yang mendukung beberapa pengguna dan / atau beberapa sambungan tidak dianjurkan - dapat menyebabkan mesin untuk menolak koneksi karena kurangnya alokasi memori.

Teknik tuning network yang akan di jelaskan disini ada dua (2), yaitu:

  • Tuning Buffer / Memory
  • Tuning besar paket (Max Transmission Unit).


Langkah

Pastikan anda mempunyai akses root.


sysctl -a | grep mem

Ini akan menampilkan pengaturan buffer anda saat ini. Simpan ini! Anda mungkin ingin mengembalikan perubahan ke asal


sysctl net.core.rmem_max
sysctl -w net.core.rmem_max=8388608

Ini menetapkan ukuran buffer penerima di OS untuk semua jenis koneksi.


sysctl -w net.core.wmem_max=8388608

Ini menetapkan ukuran buffer max di OS untuk semua jenis koneksi.

sysctl net.core.rmem_default
sysctl -w net.core.rmem_default=65536

Ini menetapkan ukuran buffer penerima default di OS untuk semua jenis koneksi.


sysctl -w net.core.wmem_default=65536

Ini menetapkan ukuran buffer pengirim default di OS untuk semua jenis koneksi.


sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608'

Setting TCP Autotuning. "Variabel tcp_mem mendefinisikan bagaimana stack TCP harus bersikap ketika saat penggunaan memori. ... Nilai pertama ditentukan dalam variabel tcp_mem memberitahu ambang rendah kernel. Di bawah titik ini, tumpukan TCP tidak peduli sama sekali untuk melakukan tekanan pada penggunaan memori oleh soket TCP yang berbeda. ... Nilai kedua memberitahukan kernel di mana titik untuk memulai menekan penggunaan memori ke bawah. ... Nilai akhir memberitahu kernel berapa banyak halaman memori mungkin digunakan secara maksimal. Jika nilai ini tercapai, aliran TCP dan paket mulai dibuang sampai kita mencapai penggunaan memori yang lebih rendah lagi. Nilai ini mencakup semua soket TCP yang sedang digunakan."


sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

TCP Autotuning setting. "Nilai pertama memberitahu kernel buffer penerima minimal menerima untuk setiap koneksi TCP, dan buffer ini selalu dialokasikan ke soket TCP, bahkan di bawah tekanan tinggi pada sistem. ... Nilai kedua memberitahu kernel default buffer penerima yang dialokasikan untuk masing-masing soket TCP. Nilai ini menimpa nilai /proc /sys/net/core/rmem_default yang digunakan oleh protokol lain. ... Nilai ketiga dan terakhir ditetapkan dalam variabel ini menentukan maksimum buffer penerima yang dapat dialokasikan untuk socket TCP."


sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608'

TCP Autotuning setting. "Variabel ini mengambil 3 nilai yang berbeda yang memegang informasi tentang berapa banyak ruang memori TCP sendbuffer yang harus digunakan pada setiap socket TCP. Setiap socket TCP memiliki ruang buffer sebanyak ini yang dapat digunakan sebelum buffer penuh. Masing-masing dari tiga nilai yang digunakan dalam kondisi yang berbeda. ... Nilai pertama dalam variabel ini menentukan ruang buffer minimum pengirim TCP yang tersedia untuk soket TCP tunggal. ... Nilai kedua dalam variabel memberitahu kita ruang buffer standar memungkinkan untuk digunakan untuk soket TCP tunggal. ... Nilai ketiga memberitahu kernel ruang buffer pengirim TCP maksimal."


sysctl -w net.ipv4.route.flush=1

Ini akan memastikan bahwa sambungan selanjutnya menggunakan nilai-nilai ini.

Langkah Cepat

Cut dan paste berikut ke dalam shell linux dengan privleges root:

sysctl -w net.core.rmem_max=8388608
sysctl -w net.core.wmem_max=8388608
sysctl -w net.core.rmem_default=65536
sysctl -w net.core.wmem_default=65536
sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'
sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608'
sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608'
sysctl -w net.ipv4.route.flush=1


Tuning Max Transmission Unit

Jika tuning buffer / memory masih tidak mempan untuk menolong kinerja jaringan. Kita dapat mengurangi panjang paket yang di ijinkan melalui interface agar panjang buffer yang dibutuhkan menjadi sedikit.

Panjang normal paket Ethernet adalah sekitar 1500byte. Ini di tentukan di Max Transmission Unit (MTU) dari interface. Kita dapat memperkecil panjang paket dengan menset MTU Interface menjadi lebih kecil dari 1500, misalnya,

ifconfig eth0 mtu 500

Ini akan menset panjang max paket menjadi 500byte.

Memperpendek panjang paket akan berkonsekuensi juga memperkecil probabilitas tabrakan paket di jaringan. Memang konsekuensi yang akan di tanggung adalah proses transfer akan membutuhkan overhead protokol yang lebih banyak yang akibatkan memperlambat proses transfer.



Referensi


Pranala Menarik