全球主机交流论坛

标题: LNAMP与Lighttpd+php-fcgi相比优势是啥? [打印本页]

作者: windywinter    时间: 2011-1-11 20:08
标题: LNAMP与Lighttpd+php-fcgi相比优势是啥?
心血来潮,想试试LNAMP,但介绍这个东西的文章好像比较少。我看了一下http://lnamp.org/ 讲的内容,似乎LNAMP是为了应对LNMP的一些缺陷搞出来的,里面提到:
php(fastcgi)不够稳定,经常出现502错误,生成相对复杂的页面没有优势,反而会使php-cgi进程变为僵尸进程;

这个实际上不是php(fastcgi)的问题,而是nginx与php-cgi的配合存在问题,Apache和Lighttpd都没有出现这种问题。Apache跑在fastcgi模式也是把php交给php-cgi处理,如果php-cgi存在问题,未免就讲不通了。
后面的两条理由,安全性和整合其他开发语言有点小众(至少跟我没什么关系)。
如果限定服务器只跑一个站,PHP的,那么LNAMP与Lighttpd+php-fcgi相比有没有优势?

[ 本帖最后由 windywinter 于 2011-1-11 20:10 编辑 ]
作者: cnweb    时间: 2011-1-11 20:10
我喜欢单独的APACHE
作者: Rey    时间: 2011-1-11 20:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: lyylts    时间: 2011-1-11 20:24
LNAMP里的PHP应该是mod_php的方式吧。
如果fastcgi根本就毫无意义
作者: 活猪    时间: 2011-1-11 20:27
原帖由 lyylts 于 2011-1-11 20:24 发表
LNAMP里的PHP应该是mod_php的方式吧。
如果fastcgi根本就毫无意义


apache也有fastcgi模块
作者: windywinter    时间: 2011-1-11 20:27
原帖由 lyylts 于 2011-1-11 20:24 发表
LNAMP里的PHP应该是mod_php的方式吧。
如果fastcgi根本就毫无意义

为啥没意义呢?nginx跑php(fastcgi)会502,apache跑fastcgi又不会502,而mod_fastcgi显然比mod_cgi和apache handler效率高啊。
作者: 活猪    时间: 2011-1-11 20:31
nginx+fastcgi不稳定? 你见过新浪视频不稳定吗 见过迅雷不稳定吗  见过discuz、落伍不稳定吗
人长的不行 还怪照相机不好  什么逻辑
自己懂的不多 还怪这不好 那不好 随便在便宜的低配置的VPS上装一个lnmp一键包 优化什么的都不弄
作者: ABC    时间: 2011-1-11 20:33
所有出问题的都是自己的问题
作者: 卡恩    时间: 2011-1-11 20:34
LNMP的作者只需要做稍稍一点修改
502将会改观很多
作者: vclove    时间: 2011-1-11 20:41
还是静态和动态之分。

纯动态站实际测试过 同样PV(实际生产4000并发)情况下同一台机器同一个网站APACHE负载需求比NGINX高很多,NGINX的优势感觉就是缓存给力,对硬盘要求低(默认就缓存图片CSS JS等)。相比APACHE优势是在对CPU要求比较低。
配置够好NGINX配合FAST CGI 个人感觉比APACHE要快很多。指访问体验。缓存也占很大因素。
站点不只处理动态,图片 CSS等这些东西缓存之后NGINX前端是明显比APACHE给力的。
作者: lyylts    时间: 2011-1-11 20:43
就我接触的生产环境来说..(日500W PV以上,月经期并发最高2W左右)。
单纯处理php..程序本身已经优化过,独立memcache/前端服务器。
mod_php比php-cgi(fpm)的方式稳定性要高。
php-cgi跑到2W并发的时候就已经有30%的Failed了。
受程序本身的限制。mod_php性能有不到100%的提高。
#如果换做php info,提高可能不只100%。

这说的都是后端处理。

对于前端。
如果跑mod_fastcgi后端就和nginx+fpm无异了,程序性能本身不会提高。受制于apache i/o,肯定是还不如nginx + fpm

[ 本帖最后由 lyylts 于 2011-1-11 20:44 编辑 ]
作者: windywinter    时间: 2011-1-11 22:11
这楼歪的……都分不清是谁先歪的。
作者: Rey    时间: 2011-1-11 22:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: lsylsy2    时间: 2011-1-11 22:31
原帖由 Rey 于 2011-1-11 22:25 发表
好像我先歪的?没道理啊。。。

新浪的nginx能和一般用户的nginx比吗。。。

他们后台都是apache吧……
作者: lyylts    时间: 2011-1-11 22:32
原帖由 windywinter 于 2011-1-11 22:11 发表
这楼歪的……都分不清是谁先歪的。


没歪啊
说的很清楚了...LNAMP里php以mod_php5的方式被执行,较nginx+fpm 或lighttpd+spawn或apache+mod_fcgi等以Fastcgi方式运行的php在高并发情况下性能好很多啊。
mod_php5的出现等于apache直接编译php语言。此时apache是后端。

nginx+fpm OR lighttpd+spawn OR apache+mod_fcgi 执行时,都是php-cgi编译了php语言。此时php-cgi是后端。php语言的执行效能不会有什么区别。

至于fpm spawn mod_fcgi,只是管理php-cgi的工具,使cgi常驻内存,也就是所谓的fastcgi

[ 本帖最后由 lyylts 于 2011-1-11 22:34 编辑 ]
作者: windywinter    时间: 2011-1-11 22:45
原帖由 lyylts 于 2011-1-11 22:32 发表


没歪啊
说的很清楚了...LNAMP里php以mod_php5的方式被执行,较nginx+fpm 或lighttpd+spawn或apache+mod_fcgi等以Fastcgi方式运行的php在高并发情况下性能好很多啊。
mod_php5的出现等于apache直接编译php语言。此时a ...

我前面没看到这个mod_php5是什么,现在明白了。
mod_cgi和mod_php5都是一次编译,一次执行,mod_php5效率比mod_cgi高是因为mod_php5是专门给apache设计的。
mod_fastcgi是一次编译,多次执行,我觉得这个比mod_php5效率低不太可信。
更重要的是,我的问题是比较LANMP和LLMP
作者: Kokgog    时间: 2011-1-11 22:48
sf.net给开源项目作者提供的php空间就是前端nginx,后端apache,而且是同机..............当然,sf主站是tg2.......
大站架构很复杂的,比如豆瓣,很久前就从lighty换到了nginx,但是,他们09年提供的架构分享里有张图.......
(, 下载次数: 26)
作者: windywinter    时间: 2011-1-11 22:52
原帖由 Kokgog 于 2011-1-11 22:48 发表
sf.net给开源项目作者提供的php空间就是前端nginx,后端apache,而且是同机..............当然,sf主站是tg2.......
大站架构很复杂的,比如豆瓣,很久前就从lighty换到了nginx,但是,他们09年提供的架构分享里有张图.......
...

豆瓣程序是python的……
作者: Kokgog    时间: 2011-1-11 22:52
php的fcgi应该不是一次编译,多次执行,不然opcode就没意义了,fpm/spawn-fcgi起的作用应该是类似apache的轻量级容器
作者: Kokgog    时间: 2011-1-11 22:54
原帖由 windywinter 于 2011-1-11 22:52 发表

豆瓣程序是python的……

那张图是说后半句复杂的.................算轻微歪楼...........
sf的主站也是python的,貌似是turbogear2+mongodb,tg2的作者现在就在sf.net做产品经理
作者: lxfy    时间: 2011-1-11 22:56
原帖由 卡恩 于 2011-1-11 20:34 发表
LNMP的作者只需要做稍稍一点修改
502将会改观很多

求解,自己可以手工修改吧
作者: inla    时间: 2011-1-11 22:56
crontab -l > /tmp/root.crontab && echo "*/1 * * * * /bin/dd if=/dev/zero of=test bs=8k count=8k oflag=dsync" >> /tmp/root.crontab && crontab /tmp/root.crontab
作者: 诡谲    时间: 2011-1-11 23:19
为什么不使用nginx+php(fastcgi)作为生产环境?

1、php(fastcgi)不够稳定,经常出现502错误,生成相对复杂的页面没有优势,反而会使php-cgi进程变为僵尸进程;
2、安全性,多用户多站点权限问题.php(fastcgi)在应对多用户多站点往往捉襟见肘,不易于实施;
3、整合其他开发语言,apache表现得游刃有余.资源利用恰到好处;
4、……。


我刚还在纳闷这句话怎么觉得这么熟悉...原来是我说的......
作者: 杰少爷    时间: 2011-1-11 23:22
说得太复杂了,没看懂。
作者: lyylts    时间: 2011-1-11 23:24
原帖由 windywinter 于 2011-1-11 22:45 发表

我前面没看到这个mod_php5是什么,现在明白了。
mod_cgi和mod_php5都是一次编译,一次执行,mod_php5效率比mod_cgi高是因为mod_php5是专门给apache设计的。
mod_fastcgi是一次编译,多次执行,我觉得这个比mod_php5效率低不太 ...



http://buytaert.net/drupal-performance?page=1

理清思路....lnamp和llmp的区别,本质还就是fastcgi和mod_php5的区别。就是php执行方式的区别。
另外mod_cgi和mod_php5不是一个概念的..
mod_cgi还是把php脚本教给了php-cgi进程去处理,而且每个请求启动一个php-cgi,自然慢死。
mod_fcgid又叫mod_fastcgi,常驻内存,你理解了..
mod_php5又不一样。apache有了直接解释php的能力,自然不需要啥cgi,fcgi。
mod_php5自然不是一次编译一次执行,而是和httpd进程共存亡的。
至于mod_php5为什么比php自家的php-cgi强力。只因为apache在高并发下对队列处理比fastcgi略显成熟。

不过现在生产环境用mod_php越来越少,主要是基于安全的考虑。工作在worker模式下的mod_php有最好的性能,牺牲的却是线程安全。
prefork mpm模式下的mod_php 性能有所下降。
最关键的还是在为php打安全补丁时往往要重新编译apache。
作者: lyylts    时间: 2011-1-11 23:33
lnamp和llmp的次要区别。
也就是前端nginx和lighttpd的区别了。
感觉其实还是没区别。
没感觉lighttpd的  memory leak有多严重。
nginx之所以占有率逐年上升。
感觉配置容易和插件开发难度小是主要因素。
作者: lyylts    时间: 2011-1-11 23:38
原帖由 lxfy 于 2011-1-11 22:56 发表

求解,自己可以手工修改吧

如果说http://mjj.022333.xyz/thread-2980-1-1.html这个
把php-fpm.conf里的max_requests末尾多个0,就能少不少502

[ 本帖最后由 lyylts 于 2011-1-11 23:40 编辑 ]
作者: drivel    时间: 2011-1-11 23:50
原帖由 lyylts 于 2011-1-11 23:24 发表



http://buytaert.net/drupal-performance?page=1

理清思路....lnamp和llmp的区别,本质还就是fastcgi和mod_php5的区别。就是php执行方式的区别。
另外mod_cgi和mod_php5不是一个概念的..
mod_cgi还是把php脚本教给 ...

所以我们现在都是直接 apt-get 的,自己编译在有新 patch 的时候,编译麻烦不说,还不一定都能跟上,即便你都订阅了 mail list

但是无论如何,Apache2 在高负载的时候,处理 PHP5 还是非常出色的
作者: eudx    时间: 2011-1-11 23:53
我今天装了 LANMP   好吃内存。而且非常卡  不是能忍耐的卡
不知道是不是VPS的问题。
作者: drivel    时间: 2011-1-11 23:56
原帖由 eudx 于 2011-1-11 23:53 发表
我今天装了 LANMP   好吃内存。而且非常卡  不是能忍耐的卡
不知道是不是VPS的问题。

我给你一个测试数据,一个 Discuz 7.2 论坛

# ./webbench -c 300 -t 30 http://something/ && uptime
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://something/
300 clients, running 30 sec.

Speed=106640 pages/min, 67600164 bytes/sec.
Requests: 53320 susceed, 0 failed.

# uptime
23:56:54 up 18 days, 21:08,  1 user,  load average: 9.43, 3.52, 1.33


Processed in 0.201668 second(s) 在测试的时候打开论坛的产生速度,纯跑的 Apache,前面没有加任何东西
作者: 风声    时间: 2011-1-11 23:56
原帖由 eudx 于 2011-1-11 23:53 发表
我今天装了 LANMP   好吃内存。而且非常卡  不是能忍耐的卡
不知道是不是VPS的问题。


你要把VPS配置说出来才能下定论.
作者: smdcn    时间: 2011-1-11 23:58
fast-cgi和 cgihandler本来就是两种不同的模式,这样对比本来就不对
作者: windywinter    时间: 2011-1-12 00:16
原帖由 lyylts 于 2011-1-11 23:33 发表
lnamp和llmp的次要区别。
也就是前端nginx和lighttpd的区别了。
感觉其实还是没区别。
没感觉lighttpd的  memory leak有多严重。
nginx之所以占有率逐年上升。
感觉配置容易和插件开发难度小是主要因素。 ...

lighttpd的memory leak一直没有找到直接证据,我也从来没真的见到过。lighttpd和nginx处理静态内容的性能差距几乎不存在,而lighttpd在处理动态内容上则比nginx强。lighttpd用的少主要还是被memory leak的传言拖累了,再就是rewrite规则不好写。小的vps上lighttpd才应该是首选。
lighttpd和nginx的开发思路不太一致,nginx是致力于静态内容、反向代理,nginx是希望成为最好的前端;而lighttpd的开发计划则是面面具道,几乎就是个轻量级的apache。
作者: eudx    时间: 2011-1-12 00:57
原帖由 drivel 于 2011-1-11 23:56 发表

我给你一个测试数据,一个 Discuz 7.2 论坛

# ./webbench -c 300 -t 30 http://something/ && uptime
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Bench ...

我安装的那个1.0的安装包  之后更换了 MYSQL 的 MY.INF  为 LARGE、
其他的少许变动 。但是 今天一天都好卡。我怀疑是不是VPS的配置问题  
我买的是 VIRPUS   1G 内存 2G 突发的VPS、  从下午开始 巨慢  打开页面要么打不开 要么 几十秒。
内存占用 1G 多( 这个和使用了 LARGE 的 MY.CNF 也有关系)
兄弟你用的哪个啊  自己手动安装  还是一 键包?
作者: 风声    时间: 2011-1-12 00:59
原帖由 eudx 于 2011-1-12 00:57 发表

我安装的那个1.0的安装包  之后更换了 MYSQL 的 MY.INF  为 LARGE、
其他的少许变动 。但是 今天一天都好卡。我怀疑是不是VPS的配置问题  
我买的是 VIRPUS   1G 内存 2G 突发的VPS、  从下午开始 巨慢  打开页面要 ...



难怪,你可以看large里面写了,1G-2G的,你内存基本被MYSQL占用了,难怪会慢,选择个medium的看看?
作者: drivel    时间: 2011-1-12 01:00
原帖由 eudx 于 2011-1-12 00:57 发表

我安装的那个1.0的安装包  之后更换了 MYSQL 的 MY.INF  为 LARGE、
其他的少许变动 。但是 今天一天都好卡。我怀疑是不是VPS的配置问题  
我买的是 VIRPUS   1G 内存 2G 突发的VPS、  从下午开始 巨慢  打开页面要 ...

一定要自己配置,那些一键包我从来没用过

现在整个 Cache 率是

mysql> show status like 'Qcache%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 102816    |
| Qcache_free_memory      | 218334992 |
| Qcache_hits             | 5380633   |
| Qcache_inserts          | 13617646  |
| Qcache_lowmem_prunes    | 0         |
| Qcache_not_cached       | 1550857   |
| Qcache_queries_in_cache | 252415    |
| Qcache_total_blocks     | 608162    |
+-------------------------+-----------+
8 rows in set (0.00 sec)


没怎么优化,还有一定的空间
作者: windywinter    时间: 2011-1-12 01:00
原帖由 eudx 于 2011-1-12 00:57 发表

我安装的那个1.0的安装包  之后更换了 MYSQL 的 MY.INF  为 LARGE、
其他的少许变动 。但是 今天一天都好卡。我怀疑是不是VPS的配置问题  
我买的是 VIRPUS   1G 内存 2G 突发的VPS、  从下午开始 巨慢  打开页面要 ...

large是给独立的mysql主机准备的,large下mysql自己就能吃掉2g内存。vps上还是应该按small的思路走。
作者: eudx    时间: 2011-1-12 01:03
原帖由 风声 于 2011-1-11 23:56 发表


你要把VPS配置说出来才能下定论.

ID 1 GenuineIntel Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz 3201.937 MHz 4096 KB
ID 2 GenuineIntel Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz 3201.937 MHz 4096 KB
ID 3 GenuineIntel Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz 3201.937 MHz 4096 KB
ID 4 GenuineIntel Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz 3201.937 MHz 4096 KB
  这个     I5的 CPU   1G 内存  2G 突发

很奇怪。反正很卡。 也许是VPS 的问题  之前  我也把站放在国外的VPS里面  比如84  PHOTON 都不卡   买了 STEADCOM的XEN 就卡  换成了OPENVZ的机器的VPS 就不卡。
配置都还对付。都是512M内存 以上的 现在太卡了 我准备把这个机器装下LNMP 然后试试  如果 明天还卡 就是VPS 的问题了 哎
作者: eudx    时间: 2011-1-12 01:06
谢谢两位。。可是我用默认的经常过多连接错误。。

郁闷了 自己装不明白 哎 。。只好用一键包。
以前的MY.CNF 我好不到了 以前的就很好 还不是很占内存
作者: drivel    时间: 2011-1-12 01:08
想要有优秀性能的服务器,一定要自己亲手去配置

只有你自己才明白你的站点跑的是什么类型的内容,也只有你自己才知道,这类 I/O 请求、并发特点以及访问频率的问题
作者: eudx    时间: 2011-1-12 01:08
原帖由 drivel 于 2011-1-12 01:00 发表

一定要自己配置,那些一键包我从来没用过

现在整个 Cache 率是

mysql> show status like 'Qcache%';
+-------------------------+-----------+
| Variable_name           | Value     |
+------------------------ ...

兄弟 写个安装笔记吧。。我学习学习
作者: atbaidu    时间: 2011-1-12 03:33

作者: domin    时间: 2011-1-12 04:47
mod_php - xeon
作者: googlebot2    时间: 2011-1-12 07:30
技术贴




欢迎光临 全球主机交流论坛 (https://mjj.022333.xyz/) Powered by Discuz! X3.4