zoukankan      html  css  js  c++  java
  • nginx配置和测试

    测试nginx处理能力和IO读写能力,使用工具webbench、iozone。

    1、nginx测试

    使用webbench工具,增加并发量,时间分别取30s,60s

    1、webbench -c 200 -t 60 http://localhost/index.html

    200并发60s执行结束,从200,500,800,1000,依次向上加,直至出现Failed请求

    Speed(pages/min):指的输出页数/分钟。

    Speed(bytes/sec):是指比特/秒,它表示网络传输速度的大小,每秒钟传输数据量。

    Request(susceed):表示成功或完成

    Request(failed)     :表示失败或未能完成。

    2、IO测试

    实例:#./iozone -a -n 512m -g 4g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls

    注:进行全面测试,最小测试文件为512M,直到测试到4g,测试read,write,测试的地方在/mnt下,生成xls文件。

    write:测试向一个新文件写入的性能。

    re-write:测试向一个已存在的文件写入的性能。当一个已存在的文件被写入时,所需工作量较少,因为此时元数据已经存在。re-write的性能通常比write的性能高。

    read:测试读一个已存在的文件的性能。

    re-Read:测试读一个最近读过的文件的性能。re-Read性能会高些,因为操作系统通常会缓存最近读过的文件数据。这个缓存可以被用于读以提高性能。

    左侧一列是测试文件大小(K),最上边一行是块大小(K),中间数据是传输速度。例如下表中第二行的“1247515”,即测试文件大小为524288K,以块大小为64K来进行传输,传输速度为1247515kBytes/sec 。表格中数据为0的部分是因为选择-a 参数时,系统默认将自动停止使用低于64K的块大小测试。

    3、Nginx配置仅做参考

    Nginx标准参数 

    /etc/nginx/nginx.conf

    worker_processes 10;

    events {
        worker_connections 102400;
    }

    client_max_body_size    100m;
    client_body_buffer_size    256k;
    proxy_connect_timeout    120;
    proxy_send_timeout    120;
    proxy_read_timeout    120;

     

    proxy_set_header X-Real-IP    $remote_addr;
    proxy_set_header REMOTE-HOST    $remote_addr;
    proxy_set_header X-Forwarded-For    $remote_addr; 

     

    如果是内网再中转服务器的话-Forwarded-For请使用
    proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;

    Nginx服务器需要配置的Linux操作系统参数

    net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

    net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

    net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

    net.ipv4.tcp_fin_timeout = 10 修改系統默认的 TIMEOUT 时间

    配置步骤:

    1 >sudo vi /etc/sysctl.conf

    添加下面四项(配置文件中几乎都包含了第一项,故只要加后面三项即可)

    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 10

     

    2 >sudo sysctl -p

    刷新配置

    3 >sudo sysctl -a |grep reuse

    检查配置是否生效

     

    **********************************************************************************************

     

     

  • 相关阅读:
    mysql 存储引擎
    mysql优化的理解(转载)
    转载:字节流与字符流的理解
    转载:java面试题(二)
    androidstudio与unity进行交互
    偶尔出现button不能点击的情况
    R文件报错:cannot resolve symbol ‘R’
    有时候老师报空错误,但是输出和在面板上看是得到了实例的
    边缘与多边形碰撞盒不能编辑的原因
    编程内功修炼
  • 原文地址:https://www.cnblogs.com/Miss-Elsa/p/7966209.html
Copyright © 2011-2022 走看看