linux 關於TCP/IP 的優化配置 配置文件/etc/sysctl.conf 修改完文件生效的命令 /sbin/sysctl -p html
以下是總結的配置內容及說明node
net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.default.arp_announce = 2 # 直接路由DR模式下要求arp_announce參數要求配置爲2 net.ipv4.conf.lo.arp_announce=2 net.ipv4.conf.all.arp_announce=2 fs.file-max = 1000000 # 打開文件句柄的數量 net.ipv4.tcp_tw_reuse = 1 # 表示開啓重用 容許TIME-WAIT sockets從新用於新的TCP鏈接 net.ipv4.tcp_keepalive_time = 600 # 啓用keepalive,tcp發送keepalive消息的頻度 net.ipv4.tcp_fin_timeout = 30 # 表示套接字FIN-WAIT-2狀態超時時間 net.ipv4.tcp_tw_recycle= 1 # 表示開啓TCP鏈接中TIME-WAIT sockets的快速回收 net.ipv4.tcp_max_tw_buckets = 5000 # 系統同時保持TIME_WAIT套接字的最大數量對於nginx 設置5000-30000 net.ipv4.ip_local_port_range = 1024 61000 # 設定系統打開端口的範圍,即用於向外鏈接的端口範圍 net.ipv4.tcp_rmem = 4096 32768 262142 # tcp對內存的使用 net.ipv4.tcp_wmem = 4096 32768 262142 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 net.core.netdev_max_backlog = 8096 # 當每一個網絡接口接收數據包的速率比內核處理這些包的速率快時,容許發送到隊列的數據包最大數 net.ipv4.tcp_syncookies = 1 # 表示開啓SYN Cookies功能 net.ipv4.tcp_max_syn_backlog = 8192 # 設置SYN隊列的長度 net.ipv4.tcp_synack_retries = 1 # 決定了內核放棄鏈接以前發送SYN+ACK包的數量 net.ipv4.tcp_syn_retries = 1 # 內核放棄創建鏈接以前發送SYN包的數量
nginx 的優化配置說明linux
全局 worker_proceses 8; cpu數量最佳與系統cpu數一直 「grep ^processor /proc/cpuinfo | wc -l」在linux 運行該命令查看系統cpu數 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 直接將nginx的worker進程綁定在固定的cpu上 nginx的進程跑在某一個CPU或CPU的某一個核上,致使nginx進程使用硬件的資源不均,綁定後可充分有效的利用有效的硬件資源 events use epoll; 使用epoll(linux2.6的高性能方式) worker_connections 1024; 每一個worker 鏈接的進程數 multi_accept on; 在接收到一個新請求儘量多的鏈接 http proxy_buffer_size 4k; 指令設置緩衝區大小,從被代理的後端服務器取得的響應內容,會先讀取放置到這裏. sendfile on; sendfile()能夠在磁盤和TCP socket之間互相拷貝數據(或任意兩個文件描述符),這種拷貝是在內核完成的,sendfile()要比組合read()和write()以及打開關閉丟棄緩衝更加有效 tcp_nopush on; tcp_nopush告訴nginx在一個數據包裏發送全部頭文件,而不一個接一個的發送 tcp_nodelay on; 不延時發送請求,on 禁用nagle緩存算法 nagle緩存算法,有些應用程序在網絡通信的時候會發送不多的字節,好比說一個字節,那麼再加TCP協議自己,實際上發的要41個字節,這樣的效率是很低的。這時候nagle算法就應運而生了,它將要發送的數據存放在緩存裏,當積累到必定量或必定時間,再將它們發送出去。 keepalive_timeout 30; 設置nginx的超時斷開 allow 47.103.36.8; (location模塊) 指定ip能夠訪問 deny all;(location模塊) 禁用除容許ip外的全部ip的訪問
原文出處:https://www.cnblogs.com/Weibull/p/10955913.htmlnginx