set-bbr.sh 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. #Optimasi Speed
  3. Add_To_New_Line(){
  4. if [ "$(tail -n1 $1 | wc -l)" == "0" ];then
  5. echo "" >> "$1"
  6. fi
  7. echo "$2" >> "$1"
  8. }
  9. Check_And_Add_Line(){
  10. if [ -z "$(cat "$1" | grep "$2")" ];then
  11. Add_To_New_Line "$1" "$2"
  12. fi
  13. }
  14. Install_BBR(){
  15. echo "#############################################"
  16. echo "Install TCP_BBR..."
  17. if [ -n "$(lsmod | grep bbr)" ];then
  18. echo "TCP_BBR sudah diinstall."
  19. echo "#############################################"
  20. return 1
  21. fi
  22. echo "Mulai menginstall TCP_BBR..."
  23. modprobe tcp_bbr
  24. Add_To_New_Line "/etc/modules-load.d/modules.conf" "tcp_bbr"
  25. Add_To_New_Line "/etc/sysctl.conf" "net.core.default_qdisc = fq"
  26. Add_To_New_Line "/etc/sysctl.conf" "net.ipv4.tcp_congestion_control = bbr"
  27. sysctl -p
  28. if [ -n "$(sysctl net.ipv4.tcp_available_congestion_control | grep bbr)" ] && [ -n "$(sysctl net.ipv4.tcp_congestion_control | grep bbr)" ] && [ -n "$(lsmod | grep "tcp_bbr")" ];then
  29. echo "TCP_BBR Install Success."
  30. else
  31. echo "Gagal menginstall TCP_BBR."
  32. fi
  33. echo "#############################################"
  34. }
  35. Optimize_Parameters(){
  36. echo "#############################################"
  37. echo "Optimasi Parameters..."
  38. Check_And_Add_Line "/etc/security/limits.conf" "* soft nofile 51200"
  39. Check_And_Add_Line "/etc/security/limits.conf" "* hard nofile 51200"
  40. Check_And_Add_Line "/etc/security/limits.conf" "root soft nofile 51200"
  41. Check_And_Add_Line "/etc/security/limits.conf" "root hard nofile 51200"
  42. Check_And_Add_Line "/etc/sysctl.conf" "fs.file-max = 51200"
  43. Check_And_Add_Line "/etc/sysctl.conf" "net.core.rmem_max = 67108864"
  44. Check_And_Add_Line "/etc/sysctl.conf" "net.core.wmem_max = 67108864"
  45. Check_And_Add_Line "/etc/sysctl.conf" "net.core.netdev_max_backlog = 250000"
  46. Check_And_Add_Line "/etc/sysctl.conf" "net.core.somaxconn = 4096"
  47. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_syncookies = 1"
  48. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_tw_reuse = 1"
  49. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_fin_timeout = 30"
  50. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_keepalive_time = 1200"
  51. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.ip_local_port_range = 10000 65000"
  52. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_max_syn_backlog = 8192"
  53. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_max_tw_buckets = 5000"
  54. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_fastopen = 3"
  55. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_mem = 25600 51200 102400"
  56. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_rmem = 4096 87380 67108864"
  57. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_wmem = 4096 65536 67108864"
  58. Check_And_Add_Line "/etc/sysctl.conf" "net.ipv4.tcp_mtu_probing = 1"
  59. echo "Optimasi Parameters Selesai."
  60. echo "#############################################"
  61. }
  62. Install_BBR
  63. Optimize_Parameters
  64. rm -f /root/bbr.sh