Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
openbaby
V2EX  ›  Linux

如何在单核 256M 内存下压榨出 nginx 的极限性能?

  •  
  •   openbaby · May 17, 2016 · 14527 views
    This topic created in 3828 days ago, the information mentioned may be changed or developed.
    1.centOS6
    2 纯文本静态页面,无图
    3.只运行了 nginx ,目前 nginx 是默认配置。
    4.cpu 占用 25%左右,但内存已满导致系统失去响应。看了下连接数 70 个 ip 左右。

    这种极端情况下,如何配置 nginx 使其得到优化?是否需要对内核 tcp 连接数进行优化?
    57 replies  •  2016-05-23 03:50:27 +08:00
    binux
    binux
    May 17, 2016
    1
    70 个 ip 能导致内存占满系统失去响应?
    micyng
    micyng
    May 17, 2016
    2
    70 个连接才多少内存, 1M 都不到
    garyalen
    garyalen
    May 17, 2016 via Android
    3
    线程开小点
    aisk
    aisk
    May 17, 2016
    4
    难道 nginx 没编译进去支持 sendfile ?
    Tink
    Tink
    May 17, 2016 via iPhone
    5
    怎么可能?还是纯静态页面,这配置带不动 70 链接??
    lelsetsuna
    lelsetsuna
    May 17, 2016
    6
    vps 超售了吧?
    lbp0200
    lbp0200
    May 18, 2016 via Android
    7
    问题出在 centos6 上,推荐最小 512 内存,精简组件吧
    lhbc
    lhbc
    May 18, 2016 via Android
    8
    哪个进程占满内存你要说啊
    hushuang
    hushuang
    May 18, 2016
    9
    vps 超售吧 FS 在版瓦工上动不动就挂掉 根本没分配到标称的资源
    mreasonyang
    mreasonyang
    May 18, 2016
    10
    @lbp0200 请问这钟配置的 VPS 用哪个发行版更好些呢?
    kslr
    kslr
    May 18, 2016 via Android
    11
    @lbp0200 为什么是 centos6 的问题?
    googlebot
    googlebot
    May 18, 2016 via Android
    12
    有一篇 128m 内存优化 nginx 的文章
    dommyet
    dommyet
    May 18, 2016 via Android
    13
    去看看我这个的 nginx 配置行不行?可能稍微改一下就好了

    https://github.com/dommyet/lempstack
    msg7086
    msg7086
    May 18, 2016❤️1
    14
    啥?极限性能?单核 1G 我 Nginx 跑着每秒 200 多个请求 500 多个并发连接的 API 还没觉得需要优化什么呢。
    ryd994
    ryd994
    May 18, 2016 via Android
    15
    你贴一下配置文件
    还有 ps aux 的输出
    4679kun
    4679kun
    May 18, 2016 via Android
    16
    clino
    clino
    May 18, 2016
    18
    问题是不是并不在 nginx 上?
    你自己弄个测试环境压测一下?
    AntonChen
    AntonChen
    May 18, 2016
    19
    这个命题... 8 核 32G 内存也不敢说能完全压榨出 Nginx 性能,这样的情况 CPU 并不太耗,内存是关键。需要对内核设置( sysctl )做优化,当然 CPU 太差也不行 不然协调连接的 CPU 资源都没有反而 CPU 又是瓶颈....
    hiboshi
    hiboshi
    May 18, 2016
    20
    低于 512M 不要用 centos ,
    mengzhuo
    mengzhuo
    May 18, 2016
    21
    先看是哪个进程吃内存啊, OOM 都不工作啊
    先看看 io 情况, in 0 out 有数值的话,说明超售了。
    raysonx
    raysonx
    May 18, 2016
    22
    我也觉得是 VPS 超售严重,实际可用内存可能根本不足 128M 。
    openbaby
    openbaby
    OP
    May 18, 2016
    23
    @Tink
    @lelsetsuna
    @msg7086
    @clino
    @4679kun
    @21paradox
    @googlebot
    @raysonx
    @mengzhuo
    @AntonChen
    @hushuang openVZ 的, top 看了下,并有没占用内存很多的进程,这种情况是不是严重超售了?

    mengzhuo
    mengzhuo
    May 18, 2016
    24
    呃……才用了 13M 啊亲!!!
    openbaby
    openbaby
    OP
    May 18, 2016 via iPhone
    25
    @mengzhuo 那其他内存都哪去了呢
    F281M6Dh8DXpD1g2
    F281M6Dh8DXpD1g2
    May 18, 2016
    26
    @openbaby 不是写了么,cached 226
    msg7086
    msg7086
    May 18, 2016
    27
    @openbaby 有没有超兽,先报价格和商家。
    esile
    esile
    May 18, 2016 via iPhone
    28
    超售了吧 哪家的 vps ?
    lincanbin
    lincanbin
    May 18, 2016❤️1
    29
    我在 2014 年用了一年的 256MiB 内存的 VPS , CentOS 5 + Nginx + Apache + PHP + MySQL 。
    一天撑 20 多万访问。

    你这样很不科学啊,是超售了吧?
    swap 开大点。
    openbaby
    openbaby
    OP
    May 18, 2016
    30
    @msg7086
    @esile
    @lincanbin host1plus 最低的那款。 openvz 没法自己加 swap 啊。
    zhangshine
    zhangshine
    May 18, 2016
    31
    才用了 13M ,看看是不是 nginx 没有配置好
    openbaby
    openbaby
    OP
    May 18, 2016
    32
    @msg7086
    @liprais
    @zhangshine
    @lincanbin
    @esile
    控制面板里显示内存已经满了。
    Neveroldmilk
    Neveroldmilk
    May 18, 2016
    33
    这 VPS ,服务商看来快要跑路了。
    chunchu
    chunchu
    May 18, 2016 via iPhone
    34
    用的跟我是同一款
    youxiachai
    youxiachai
    May 18, 2016
    35
    买这种配置这么低的 vps..一般都是用来搞 vpn 的吧.....服务商碰到你这种榨性能..估计要哭了...

    不过,服务商超售也不厚道...

    怎么说呢.感觉还是拿钱换性能..毕竟省事...
    ddd2500
    ddd2500
    May 18, 2016
    36
    nginx fast-cgi cache
    openbaby
    openbaby
    OP
    May 18, 2016
    37
    @ddd2500 全是静态页面,也需要开启这个吗?
    mengzhuo
    mengzhuo
    May 18, 2016 via iPhone
    38
    @openbaby 学习下 unix 的内存吧……
    其它内存都用来缓存磁盘文件
    disonlee
    disonlee
    May 18, 2016
    39
    还是检查下配置吧。这家 vps 价格不便宜。超售肯定没有其他便宜货那么狠。
    ovz 没有不超售的。这家还是比较靠谱的 tk 回复也很快 态度也很好 就是有点略贵
    还有 说要跑路的准备好 1000 万了么。。。
    caola
    caola
    May 18, 2016
    40
    我的就是 256M 内存的 debian8 , nginx 网站日志文件一天能产生 4G 多,至于访问量嘛……
    fstab
    fstab
    May 18, 2016
    41
    搬瓦工 64M VPS
    系统是: debian6 x86
    安装的环境是

    服务器解译引擎 lighttpd/1.4.31
    PHP 版本( php_version ): 5.4.45-0+deb7u2

    测试页面是静态网页, CSS/图片放在 CDN 上的

    阿里云性能测试 Lite 200 线程

    PHP 探针显示
    物理内存:共 72 M , 已用 69.2 M , 空闲 2.8 M , 使用率 96.11%
    Cache 化内存为 56.75 M , 使用率 78.82 % | Buffers 缓冲为 0 M
    真实内存使用 12.45 M , 真实内存空闲 59.55 M , 使用率 17.29 %
    SWAP 区:共 16 M , 已使用 4.28 M , 空闲 11.72 M , 使用率 26.75 %

    也就是说你的环境有问题吧。。。
    ryd994
    ryd994
    May 18, 2016 via Android
    42
    @openbaby 你别管控制面板里说什么
    自己 free -w 看看
    我的 VPS 控制面板里也是常满的,因为 cache 也算进去了
    msg7086
    msg7086
    May 18, 2016
    43
    @openbaby host1plus 这辣鸡你拿来跑生产?
    好歹也用个稍微正常点的商家吧。
    openbaby
    openbaby
    OP
    May 18, 2016
    44
    @lincanbin
    @msg7086
    @ryd994
    @flyz
    @disonlee
    @mengzhuo 这 vps 似乎对 tcp socket 限制为 1000 ,是不是这原因导致。。
    msg7086
    msg7086
    May 18, 2016
    45
    @openbaby 我觉得不是。建议你先做一下服务器性能测试……
    openbaby
    openbaby
    OP
    May 18, 2016
    46
    @msg7086 我 wget 下载东西都下不动了,提示 failed: No buffer space available.然后把我 nginx kill 后就能下了。。
    msg7086
    msg7086
    May 18, 2016
    47
    以及如果你有时间的话,可以去 webhostingtalk 上搜一下他家的差评,慢慢品读,然后可以再花点时间买个新的……
    msg7086
    msg7086
    May 18, 2016
    48
    @openbaby No buffer space available 是 TCP 内核限制没错,说明你并发连接数超过上限了。
    这除了换 KVM/XEN 以外无解。
    之前在某家日本 OVZ 上跑的时候也遇到过了。(当然那家跑的时候并发量比你大得多。
    openbaby
    openbaby
    OP
    May 18, 2016
    49
    @msg7086 请推荐性价比较高的 KVM/XEN 架构 vps 。
    flowerdance
    flowerdance
    May 19, 2016 via Android❤️1
    50
    @openbaby ramnode 试试
    msg7086
    msg7086
    May 19, 2016❤️1
    51
    @openbaby ramnode ,听说 hostus 也还行,但是我没用过,你也可以试试。
    openbaby
    openbaby
    OP
    May 19, 2016
    52
    @msg7086
    @flowerdance 这两家的 openVZ 不知道限制为多少。。
    Tink
    Tink
    May 19, 2016
    53
    @msg7086 hostus 使用者表示不咋地
    openbaby
    openbaby
    OP
    May 19, 2016
    54
    @Tink 我看了感觉低配的性价比不如 vultr 高啊
    msg7086
    msg7086
    May 19, 2016 via Android
    55
    @openbaby “ kvm ”
    高并发使用最好还是别用 vz 。
    fstab
    fstab
    May 19, 2016 via Android
    56
    @msg7086 不赞同最后一句,应该是别用超售的 vz
    wclebb
    wclebb
    May 23, 2016 via iPhone
    57
    @flyz 自言自语
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   947 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 94ms · UTC 20:10 · PVG 04:10 · LAX 12:10 · JFK 15:10
    ♥ Do have faith in what you're doing.