成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一次lvs10萬+并發的優化實例

開發 前端
在一次實際項目中,lvs 只能承載量很低,需要對lvs和Linux內核參數進行優化。

1 緣起

在一次實際項目中,lvs 只能承載量很低,需要對lvs和Linux內核參數進行優化。

2 為什么使用lvs+keepalived架構

(1)LVS可以實現負載均衡,但是不能夠進行健康檢查。比如一個RS出現故障,LVS 仍然會把請求轉發給故障的RS服務器,這樣就會導致請求的無效性;keepalived 軟件可以進行健康檢查。

(2)使用keepalived能同時實現 LVS 的高可用性,解決 LVS 單點故障的問題。

3 lvs+keepalived部署

3.1 部署圖

注意:
(1)lvs+keepalived至少需要2臺服務器。
(2)需要一個VIP。
(3)RS服務器不能和LVS以及Keepalived復用。

4.2 lvs+keepalived部署(2臺DS服務器)

  • 安裝ipvs和keepalived
  1. yum install ipvsadm keepalived -y 
  • keepalived配置

注意:
(1)keepalived是否需要爭搶主IP,如果不需要,需要把state都修改為BACKUP,并配置nopreempt。
(2)persistence_timeout的作用是:在一定時間內使來自于同一個Client的所有TCP請求被負載到同一個RealServer上,查看ipvsadm -S -n

主節點

  1. #主節點( MASTER )配置文件 
  2. cat > /etc/keepalived/keepalived.conf <<'EOF' 
  3. ! Configuration File for keepalived 
  4. global_defs { 
  5.    router_id LVS_DEVEL 
  6. vrrp_instance VI_1 { 
  7.     state BACKUP  ! 主為master,不爭搶模式改為BACKUP 
  8.     nopreempt  !不爭搶模式添加 
  9.     interface eth0 
  10.     virtual_router_id 51 
  11.     priority 100 
  12.     advert_int 1 
  13.     authentication { 
  14.         auth_type PASS 
  15.         auth_pass 1111 
  16.     } 
  17.     virtual_ipaddress { 
  18.         192.168.112.10 
  19.     } 
  20. virtual_server 192.168.112.10 80 { 
  21.     delay_loop 6 
  22.     lb_algo rr 
  23.     lb_kind DR 
  24.     ! persistence_timeout 0 
  25.     protocol TCP 
  26.     real_server 192.168.112.13 80 { 
  27.         weight 1 
  28.         TCP_CHECK { 
  29.             connect_timeout 10 
  30.             retry 3 
  31.             delay_before_retry 3 
  32.             connect_port 80 
  33.         } 
  34.     } 
  35.     real_server 192.168.112.14 80 { 
  36.         weight 1 
  37.         TCP_CHECK { 
  38.             connect_timeout 10 
  39.             retry 3 
  40.             delay_before_retry 3 
  41.             connect_port 80 
  42.         } 
  43.     } 
  44.     real_server 192.168.112.15 80 { 
  45.         weight 1 
  46.         TCP_CHECK { 
  47.             connect_timeout 10 
  48.             retry 3 
  49.             delay_before_retry 3 
  50.             connect_port 80 
  51.         } 
  52.     } 
  53. EOF 

從節點

  1. cat > /etc/keepalived/keepalived.conf <<'EOF' 
  2. ! Configuration File for keepalived 
  3. global_defs { 
  4.    router_id LVS_DEVEL 
  5. vrrp_instance VI_1 { 
  6.     state BACKUP 
  7.     nopreempt  ! 不爭搶模式添加 
  8.     interface eth0 
  9.     virtual_router_id 51 
  10.     priority 90 
  11.     advert_int 1 
  12.     authentication { 
  13.         auth_type PASS 
  14.         auth_pass 1111 
  15.     } 
  16.     virtual_ipaddress { 
  17.         192.168.112.10 
  18.     } 
  19. virtual_server 192.168.112.10 80 { 
  20.     delay_loop 6 
  21.     lb_algo rr 
  22.     lb_kind DR 
  23.     ! persistence_timeout 0 
  24.     protocol TCP 
  25.     real_server 192.168.112.13 80 { 
  26.         weight 1 
  27.         TCP_CHECK { 
  28.             connect_timeout 10 
  29.             retry 3 
  30.             delay_before_retry 3 
  31.             connect_port 80 
  32.         } 
  33.     } 
  34.     real_server 192.168.112.14 80 { 
  35.         weight 1 
  36.         TCP_CHECK { 
  37.             connect_timeout 10 
  38.             retry 3 
  39.             delay_before_retry 3 
  40.             connect_port 80 
  41.         } 
  42.     } 
  43.     real_server 192.168.112.15 80 { 
  44.         weight 1 
  45.         TCP_CHECK { 
  46.             connect_timeout 10 
  47.             retry 3 
  48.             delay_before_retry 3 
  49.             connect_port 80 
  50.         } 
  51.     } 
  52. EOF 
  • 內核參數
  1. echo 1 > /proc/sys/net/ipv4/ip_forward 
  2.  
  3. sysctl -w net.ipv4.ip_forward=1 
  • 啟動
  1. systemctl enable keepalived 
  2.  
  3. systemctl start keepalived 

4.3 真實服務器配置

  • 配置腳本

不需要在lvs+keepalived的服務器上配置,需要在所有的真實服務器上配置。注意vip必須與前面keepalived上的vip相同。

  1. # vim lvs_dr_rs.sh 
  2. SNS_VIP=192.168.112.10 
  3. /etc/rc.d/init.d/functions 
  4. case "$1" in 
  5. start) 
  6.        ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP 
  7.        /sbin/route add -host $SNS_VIP dev lo:0 
  8.        echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  9.        echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  10.        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  11.        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 
  12.        sysctl -p >/dev/null 2>&1 
  13.        echo "RealServer Start OK" 
  14.        ;; 
  15. stop) 
  16.        ifconfig lo:0 down 
  17.        route del $SNS_VIP >/dev/null 2>&1 
  18.        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  19.        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  20.        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  21.        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce 
  22.        echo "RealServer Stoped" 
  23.        ;; 
  24. *) 
  25.        echo "Usage: $0 {start|stop}" 
  26.        exit 1 
  27. esac 
  28. exit 0 
  29. 執行生效 
  30. # 所有RS節點上分別執行腳本: 
  31. chmod +x lvs_dr_rs.sh 
  32.  ./lvs_dr_rs.sh start 

5 參數優化

5.1 LVS參數

  • 增大ipvs模塊hash table的大小

ipvs模塊hash table默認值為2^12=4096,改為2^20=1048576。可以用ipvsadm -l命令查詢當前hash table的大小。

  1. IP Virtual Server version 1.2.1 (size=4096

修改方法:

在/etc/modprobe.d/目錄下添加文件ip_vs.conf,內容為:

  1. options ip_vs conn_tab_bits=20 

重新加載ipvs模塊。

  1. IP Virtual Server version 1.2.1 (size=1048576
  • 修改 LVS 表中的 timeout
  1. ipvsadm --set  900 60 300 
  2.  
  3. ipvsadm -ln --timeout 
  4. Timeout (tcp tcpfin udp): 900 60 300 

5.2 文件句柄及進程數

  1. *  soft nofile 1024000 
  2. *  hard nofile 1024000 
  3. *  soft nproc 1024000 
  4. *  hard nproc 1024000 

5.3 內核參數

  1. fs.file-max = 1048576 
  2. net.ipv4.ip_forward = 1 
  3. net.core.wmem_default = 8388608 
  4. net.core.wmem_max = 16777216 
  5. net.core.rmem_default = 8388608 
  6. net.core.rmem_max = 16777216 
  7. net.core.somaxconn = 65535 
  8. net.core.optmem_max = 81920 
  9. net.core.netdev_max_backlog = 262144 
  10. net.ipv4.route.gc_timeout = 20 
  11. net.ipv4.tcp_syncookies = 1 
  12. net.ipv4.tcp_abort_on_overflow = 1 
  13. net.ipv4.tcp_max_tw_buckets = 6000 
  14. net.ipv4.tcp_sack = 1 
  15. net.ipv4.tcp_window_scaling = 1 
  16. net.ipv4.tcp_no_metrics_save = 1 
  17. net.ipv4.tcp_rmem = 32768   131072  16777216 
  18. net.ipv4.tcp_wmem = 8192   131072  16777216 
  19. net.ipv4.tcp_mem = 94500000 915000000 927000000 
  20. net.ipv4.tcp_max_syn_backlog = 262144 
  21. net.ipv4.tcp_max_orphans = 3276800 
  22. net.ipv4.tcp_timestamps = 0 
  23. net.ipv4.tcp_synack_retries = 1 
  24. net.ipv4.tcp_syn_retries = 1 
  25. net.ipv4.tcp_tw_recycle = 1 
  26. net.ipv4.tcp_tw_reuse = 1 
  27. net.ipv4.tcp_fin_timeout = 10 
  28. net.ipv4.tcp_keepalive_time = 120 
  29. net.ipv4.tcp_keepalive_probes = 3 
  30. net.ipv4.tcp_keepalive_intvl = 15 
  31. net.ipv4.tcp_retries2 = 5 
  32. net.ipv4.ip_local_port_range = 1024    65000 
  33. net.ipv4.conf.default.rp_filter = 1 
  34. net.ipv4.conf.default.accept_source_route = 0 
  35. net.ipv4.conf.all.arp_ignore = 1 
  36. net.ipv4.conf.all.arp_announce = 2 
  37. #modprobe ip_conntrack  
  38. net.netfilter.nf_conntrack_tcp_timeout_established = 180 
  39. net.netfilter.nf_conntrack_max = 1048576 
  40. net.nf_conntrack_max = 1048576 
  41. kernel.sysrq = 0 
  42. kernel.core_uses_pid = 1 
  43. kernel.msgmnb = 65536 
  44. kernel.msgmax = 65536 
  45. kernel.shmmax = 68719476736 
  46. kernel.shmall = 4294967296 

注意:
net.ipv4.tcp_tw_recycle = 1有坑,在nat環境下慎用。

越是大并發,越要注意net.ipv4.tcp_max_tw_buckets的值不能太大。

 

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2020-08-28 08:55:32

商城系統高并發

2015-07-17 10:04:33

MKMapView優化

2009-05-22 17:05:52

2011-02-22 09:29:23

jQueryJavaScript

2023-11-06 07:45:42

單據圖片處理

2021-08-02 13:08:56

高并發服務

2011-06-28 10:41:50

DBA

2022-09-15 10:02:58

測試軟件

2021-01-08 13:52:15

Consul微服務服務注冊中心

2020-09-04 16:38:01

網絡攻擊勒索軟件數據泄露

2019-08-15 11:30:06

SQL數據庫ASH

2021-12-27 10:08:16

Python編程語言

2020-10-24 13:50:59

Python編程語言

2019-01-21 11:17:13

CPU優化定位

2023-11-29 12:12:24

Oceanbase數據庫

2019-03-19 14:52:00

性能優化MySQL數據庫

2017-11-09 09:06:29

流量暴增優化

2017-08-31 15:41:17

MysqlLVSRS機器

2022-09-07 09:09:13

高并發架構

2019-12-16 07:18:42

數據庫SQL代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品99久久久久久宅男 | 一区视频 | 成人一区二区在线 | 精品国产一区二区三区日日嗨 | 一区二区三区在线电影 | 四虎伊人 | 黄色毛片在线播放 | 国产成人免费视频 | 毛片久久久| 自拍视频在线观看 | 国产目拍亚洲精品99久久精品 | 91久久精品国产 | 91伊人| 中文字幕一页二页 | 免费一区二区 | 国产精品久久777777 | 毛片的网址 | 日韩欧美在线不卡 | 欧美日韩一区在线 | 欧美成人h版在线观看 | 日本精品久久久久久久 | 午夜av电影| 欧美日韩电影一区 | 亚洲精品一区二区三区四区高清 | 国产99久久精品一区二区永久免费 | 久久精品亚洲 | 亚洲激情网站 | 国产免费黄网 | 91影片| 日本免费网 | 黄色免费在线观看网址 | 国产精品久久一区二区三区 | 中文字幕亚洲视频 | 狠狠躁躁夜夜躁波多野结依 | 国产亚洲精品综合一区 | 国产免费a | 久久小视频 | 亚洲电影免费 | 9191在线播放 | 99欧美精品 | 高清国产午夜精品久久久久久 |