国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

Nginx優(yōu)化-高并發(fā)下的優(yōu)化

2024-08-30 12:22:53
字體:
供稿:網(wǎng)友
  最近在進(jìn)行服務(wù)器的優(yōu)化,正好在看nginx相關(guān)的知識,所以把一些知識整理一下。
  我的機(jī)器為四核CPU,16G內(nèi)存。
  內(nèi)核參數(shù)優(yōu)化
  把如下的參數(shù)追加到Linux系統(tǒng)的/etc/sysctl.conf文件中,然后使用如下命令使修改生效:/sbin/sysctl -p
  net.core.netdev_max_backlog = 262144
  net.core.somaxconn = 262144
  net.ipv4.tcp_max_orphans = 262144
  net.ipv4.tcp_max_syn_backlog = 262144
  net.ipv4.tcp_timestamps = 0
  net.ipv4.tcp_synack_retries = 1
  net.ipv4.tcp_syn_retries = 1
  net.core.netdev_max_backlog參數(shù)
  參數(shù)net.core.netdev_max_backlog,表示當(dāng)每個網(wǎng)絡(luò)接口接受數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許發(fā)送隊列的數(shù)據(jù)包的最大數(shù)目,我們調(diào)整為262144.
  net.core.somaxconn
  該參數(shù)用于調(diào)節(jié)系統(tǒng)同時發(fā)起的TCP連接數(shù),一般默認(rèn)值為128,在客戶端高并發(fā)的請求的情況下,該默認(rèn)值較小,可能導(dǎo)致連接超時或者重傳問題,我們可以根據(jù)實(shí)際情況結(jié)合并發(fā)數(shù)來調(diào)節(jié)此值。
  net.ipv4.tcp_max_orphans
  該參數(shù)用于設(shè)定系統(tǒng)中最多允許存在多少TCP套接字不被關(guān)聯(lián)到任何一個用戶文件句柄上,如果超過這個數(shù)字,沒有與用戶文件句柄關(guān)聯(lián)到TCP套接字將立即被復(fù)位,同時發(fā)出警告信息,這個限制只是為了簡單防治Dos攻擊,一般系統(tǒng)內(nèi)存充足的情況下,可以增大這個參數(shù)。
  net.ipv4.tcp_max_syn_backlog
  該參數(shù)用于記錄尚未收到客戶端確認(rèn)信息的連接請求的最大值,對于擁有128內(nèi)存的系統(tǒng)而言,此參數(shù)的默認(rèn)值為1024,對小內(nèi)存的系統(tǒng)則是128,一般在系統(tǒng)內(nèi)存比較充足的情況下,可以增大這個參數(shù)的賦值。
  net.ipv4.tcp_timestamps
  該參數(shù)用于設(shè)置時間戳,這個可以避免序列號的卷繞,在一個1Gb/s的鏈路上,遇到以前用過的序列號概率很大,當(dāng)此值賦值為0時,警用對于TCP時間戳的支持,默認(rèn)情況下,TCP協(xié)議會讓內(nèi)核接受這種異常的數(shù)據(jù)包,針對Nginx服務(wù)器來說,建議將其關(guān)閉。
  net.ipv4.tcp_synack_retries
  該參數(shù)用于設(shè)置內(nèi)核放棄TCP連接之前向客戶端發(fā)送SYN+ACK包的數(shù)量,為了建立對端的連接服務(wù),服務(wù)器和客戶端需要進(jìn)行三次握手,第二次握手期間,內(nèi)核需要發(fā)送SYN并附帶一個回應(yīng)前一個SYN的ACK,這個參數(shù)主要影響這個過程,一般賦予值為1,即內(nèi)核放棄連接之前發(fā)送一次SYN+ACK包。
  net.ipv4.tcp_syn_retries
  該參數(shù)的作用與上一個參數(shù)類似,設(shè)置內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量,賦值為1。
  nginx優(yōu)化
  nginx的配置文件如下:
  user www-data;
  pid /run/nginx.pid;
  worker_processes 4;
  worker_cpu_affinity 0001 0010 0100 1000;
  worker_rlimit_nofile 65535;
  events {
  use epoll;
  worker_connections 65535;
  accept_mutex off;
  multi_accept off;
  }
  http {
  ##
  # Basic Settings
  ##
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 60 50;
  send_timeout 10s;
  types_hash_max_size 2048;
  client_header_buffer_size 4k;
  client_max_body_size 8m;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  ##
  # Logging Settings
  ##
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;
  ##
  # Gzip Settings
  ##
  gzip on;
  gzip_disable "msie6";
  gzip_min_length 1024;
  gzip_vary on;
  gzip_comp_level 2;
  gzip_buffers 32 4k;
  gunzip_static on;
  gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  ##
  # Virtual Host Configs
  ##
  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
  }
  worker_processes
  worker_processes用來設(shè)置Nginx服務(wù)的進(jìn)程數(shù)。推薦是CPU內(nèi)核數(shù)或者內(nèi)核數(shù)的倍數(shù),推薦使用CPU內(nèi)核數(shù),因?yàn)槲业腃PU為4核的,所以設(shè)置為4。
  worker_cpu_affinity
  默認(rèn)情況下,Nginx的多個進(jìn)程有可能跑在某一個CPU或CPU的某一核上,導(dǎo)致Nginx進(jìn)程使用硬件的資源不均,因此綁定Nginx進(jìn)程到不同的CPU上是為了充分利用硬件的多CPU多核資源的目的。
  worker_cpu_affinity用來為每個進(jìn)程分配CPU的工作內(nèi)核,參數(shù)有多個二進(jìn)制值表示,每一組代表一個進(jìn)程,每組中的每一位代表該進(jìn)程使用CPU的情況,1代表使用,0代表不使用。所以我們使用worker_cpu_affinity 0001 0010 0100 1000;來讓進(jìn)程分別綁定不同的核上。
  worker_connections
  設(shè)置一個進(jìn)程理論允許的最大連接數(shù),理論上越大越好,但不可以超過worker_rlimit_nofile的值。還有個問題,linux系統(tǒng)中有個指令open file resource limit,它設(shè)置了進(jìn)程可以打開的文件句柄數(shù)量,可以用下面的指令查看你的linux系統(tǒng)中open file resource limit指令的值,cat /proc/sys/fs/file-max
  可以將該指令設(shè)置為23900251
  echo "2390251" > /proc/sys/fs/file-max; sysctl -p
  worker_rlimit_nofile
  設(shè)置 主站蜘蛛池模板: 招远市| 双桥区| 冕宁县| 新闻| 渝中区| 蓬安县| 屏东市| 阜城县| 无为县| 通道| 准格尔旗| 宜川县| 黑山县| 五指山市| 海伦市| 黔江区| 应用必备| 青州市| 翁牛特旗| 北川| 堆龙德庆县| 宜兰市| 周至县| 武平县| 外汇| 武鸣县| 荔波县| 黄浦区| 民和| 清远市| 晋江市| 华亭县| 新昌县| 双柏县| 酉阳| 皋兰县| 楚雄市| 昆山市| 兴隆县| 双峰县| 嘉荫县|