技术解析

如何在单核 256M 内存下压榨出 nginx 的极限性能?
0
2021-07-02 17:18:51
idczone
1.centOS6
2 纯文本静态页面,无图
3.只运行了 nginx ,目前 nginx 是默认配置。
4.cpu 占用 25%左右,但内存已满导致系统失去响应。看了下连接数 70 个 ip 左右。

这种极端情况下,如何配置 nginx 使其得到优化?是否需要对内核 tcp 连接数进行优化?
70 个 ip 能导致内存占满系统失去响应?

70 个连接才多少内存, 1M 都不到

线程开小点

难道 nginx 没编译进去支持 sendfile ?

怎么可能?还是纯静态页面,这配置带不动 70 链接??

vps 超售了吧?

问题出在 centos6 上,推荐最小 512 内存,精简组件吧

哪个进程占满内存你要说啊

vps 超售吧 FS 在版瓦工上动不动就挂掉 根本没分配到标称的资源

请问这钟配置的 VPS 用哪个发行版更好些呢?

为什么是 centos6 的问题?

有一篇 128m 内存优化 nginx 的文章

去看看我这个的 nginx 配置行不行?可能稍微改一下就好了
https://github.com/dommyet/lempstack

啥?极限性能?单核 1G 我 Nginx 跑着每秒 200 多个请求 500 多个并发连接的 API 还没觉得需要优化什么呢。

你贴一下配置文件
还有 ps aux 的输出

https://libnull.com/vps2arch/

https://github.com/rharmonson/richtech/wiki/Installing-Nginx-on-CentOS-6.5-Minimal-x86_64

问题是不是并不在 nginx 上?
你自己弄个测试环境压测一下?

这个命题... 8 核 32G 内存也不敢说能完全压榨出 Nginx 性能,这样的情况 CPU 并不太耗,内存是关键。需要对内核设置( sysctl )做优化,当然 CPU 太差也不行 不然协调连接的 CPU 资源都没有反而 CPU 又是瓶颈....

低于 512M 不要用 centos ,

先看是哪个进程吃内存啊, OOM 都不工作啊
先看看 io 情况, in 0 out 有数值的话,说明超售了。

我也觉得是 VPS 超售严重,实际可用内存可能根本不足 128M 。











openVZ 的, top 看了下,并有没占用内存很多的进程,这种情况是不是严重超售了?



呃……才用了 13M 啊亲!!!

那其他内存都哪去了呢

不是写了么,cached 226

有没有超兽,先报价格和商家。

超售了吧 哪家的 vps ?

我在 2014 年用了一年的 256MiB 内存的 VPS , CentOS 5 + Nginx + Apache + PHP + MySQL 。
一天撑 20 多万访问。
你这样很不科学啊,是超售了吧?
swap 开大点。



host1plus 最低的那款。 openvz 没法自己加 swap 啊。

才用了 13M ,看看是不是 nginx 没有配置好






控制面板里显示内存已经满了。

这 VPS ,服务商看来快要跑路了。

用的跟我是同一款

买这种配置这么低的 vps..一般都是用来搞 vpn 的吧.....服务商碰到你这种榨性能..估计要哭了...
不过,服务商超售也不厚道...
怎么说呢.感觉还是拿钱换性能..毕竟省事...

nginx fast-cgi cache

全是静态页面,也需要开启这个吗?

学习下 unix 的内存吧……
其它内存都用来缓存磁盘文件

还是检查下配置吧。这家 vps 价格不便宜。超售肯定没有其他便宜货那么狠。
ovz 没有不超售的。这家还是比较靠谱的 tk 回复也很快 态度也很好 就是有点略贵
还有 说要跑路的准备好 1000 万了么。。。

我的就是 256M 内存的 debian8 , nginx 网站日志文件一天能产生 4G 多,至于访问量嘛……

搬瓦工 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 %
也就是说你的环境有问题吧。。。

你别管控制面板里说什么
自己 free -w 看看
我的 VPS 控制面板里也是常满的,因为 cache 也算进去了

host1plus 这辣鸡你拿来跑生产?
好歹也用个稍微正常点的商家吧。






这 vps 似乎对 tcp socket 限制为 1000 ,是不是这原因导致。。

我觉得不是。建议你先做一下服务器性能测试……

我 wget 下载东西都下不动了,提示 failed: No buffer space available.然后把我 nginx kill 后就能下了。。

以及如果你有时间的话,可以去 webhostingtalk 上搜一下他家的差评,慢慢品读,然后可以再花点时间买个新的……

No buffer space available 是 TCP 内核限制没错,说明你并发连接数超过上限了。
这除了换 KVM/XEN 以外无解。
之前在某家日本 OVZ 上跑的时候也遇到过了。(当然那家跑的时候并发量比你大得多。

请推荐性价比较高的 KVM/XEN 架构 vps 。

ramnode 试试

ramnode ,听说 hostus 也还行,但是我没用过,你也可以试试。


这两家的 openVZ 不知道限制为多少。。

hostus 使用者表示不咋地

我看了感觉低配的性价比不如 vultr 高啊

“ kvm ”
高并发使用最好还是别用 vz 。

不赞同最后一句,应该是别用超售的 vz

自言自语

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服