
一晃 2 年多,还记得 2 年前在 V2EX 发的贴,预写更好用的 lnmp : http://v2ex.com/t/87708
通过网友反馈、鞭策,在 lnmp 基础上增加很多功能,如 java 、 hhvm 等,于是有一个新名字: OneinStack
之后用的人越来越多( lnmp : Sart809 fork317 ; OneinStack : Star 172 fork 84 ),反馈很多,吸取很多想法,不断改进,但我是有强迫症的人,希望做到完美,个人想法是有限的,又来 V2EX 取经啦,希望各位大大给点意见或吐槽。。。。。
相关链接:
1 d5d 2016-04-13 09:38:25 +08:00 能用在生产环境?备份迁移是否方便? |
2 xiaoz 2016-04-13 09:38:46 +08:00 目前就在用 Oneinstack ,支持楼主,更新得也比较快。 |
4 tattoomaster 2016-04-13 09:41:06 +08:00 顶我们的 yeho 大神 谢谢你的系统,帮了我大忙 |
5 beyoung 2016-04-13 09:43:06 +08:00 via iPhone 这个必须支持 非常方便 |
6 Yamade 2016-04-13 09:59:22 +08:00 做成 docker 不是更好么? |
7 sewyu 2016-04-13 09:59:41 +08:00 oneinstack 非常好用,软件版本更新非常快。 非常感谢! |
9 a1058021348 2016-04-13 10:14:36 +08:00 via iPhone 曾经在 oneinstack 反馈区问过一个小白问题,很快得到楼主的回复并解决问题,让我十分感激。再次致谢并支持楼主。 |
10 Shura 2016-04-13 10:17:52 +08:00 via Android 支持楼主,目前在用 OneinStack ,更新组件功能我非常喜欢。 |
11 KKKKKK 2016-04-13 10:21:56 +08:00 via Android 服务器最低配置要求多少 |
12 kchum 2016-04-13 10:22:16 +08:00 原来是 LZ 的,有关注过。 |
15 Andy1999 2016-04-13 10:27:52 +08:00 via iPhone 可是你的脚本装了太多东西,不符合很多人的用户习惯 而且我用了一次我的 IDCF 彻底开不起来了 |
16 yiqingfeng 2016-04-13 10:35:02 +08:00 大力支持,希望好用的东西越来越多,重要是免费。 |
17 shinko 2016-04-13 10:41:32 +08:00 虽然不用,但是一直有关注在学习 |
19 bazingaterry 2016-04-13 10:43:18 +08:00 via iPhone 目前四个网站都是跑在楼主的脚本下面,很稳定,更新也方便,谢谢楼主! |
20 AstroProfundis 2016-04-13 10:45:07 +08:00 |
21 AstroProfundis 2016-04-13 10:46:13 +08:00 如果谁有心能反复测试各种参数 /配置找到超过源安装的组合,也算造福大众了 |
22 ptsa 2016-04-13 10:46:19 +08:00 树莓派这类 arm 上跑不知道效果怎么样 想买个 Cubieboard 5 不过新出来 server 系统还没出 |
23 yesono OP @AstroProfundis 已经改进过很多,可以再测试下,只有有朋友线上,跑一台 lnmp ( php5.6 )并发 1w 无压力,当然 php 程序比较简单。。。 |
24 AstroProfundis 2016-04-13 10:58:37 +08:00 @yesono 关键不是实际性能的绝对值,而是和编译安装和包安装的相对性能差距,我有空可以试试(最近不一定),以及我实在想不通编译的会比源里面的差是为什么... |
25 Andy1999 2016-04-13 11:01:38 +08:00 via iPhone @yesono 举个例子,你的脚本会修改系统语言,改 HostName 装 htop 等 我不知道这些用意何在 貌似还有加 Swap |
26 yesono OP @Andy1999 include/init_*.sh 开头的文件可以改。如系统默认没有 swap ,内存小于 2G 会加,否则不加,因为小内存编译通不过。 |
27 yesono OP @AstroProfundis 没必要纠结吧,大多数都是源码编译,有自己想要的参数,大公司通常做法是源码编译,打成 rpm 包。。。 |
28 AstroProfundis 2016-04-13 11:33:28 +08:00 @yesono 所以我就是想知道 {官方源打包,自己建源打包,自己直接编译} 这几样东西到底有什么区别,就目前观察到的情况是官方源和自己打包性能没有明显差距,直接编译会更差,但不知道为什么 |
29 flymemory 2016-04-13 11:47:18 +08:00 一直在用 oneinstack ,很赞~~ |
30 yesono OP @AstroProfundis 自己打包也是源码编译,有空再测试下哦,期望反馈。。。 |
31 AstroProfundis 2016-04-13 11:50:30 +08:00 @yesono 是的,这个是最奇怪的地方,目前只能想到打包操作的整体编译环境会和直接编译不一样,这几天有空我会尽量试一下,但不一定_(:з∠)_ |
32 powtop 2016-04-13 11:55:41 +08:00 不错 一直在用 挺好的 |
33 ivmm 2016-04-13 12:03:11 +08:00 OpenResty 模块太少,基本是废的呀 |
34 badcode 2016-04-13 12:42:33 +08:00 via iPhone |
35 lzsadam 2016-04-13 12:58:43 +08:00 自从 google 到 https://blog.linuxeye.com/31.html 之后就一直在用了 |
38 RangerWolf 2016-04-13 13:44:02 +08:00 强烈需要一个 mysql 主备一键部署。。。 |
39 gpw1987 2016-04-13 13:55:40 +08:00 支持一样,楼主这样额努力才能有更多的人使用 LNMP |
40 yuewolf 2016-04-13 14:05:22 +08:00 一直在用 lnmp ,感觉很好很方便,特别是小内存 VPS 。 唯一美中不足的就是源码包略显滞后,每次部署以后,都得自己升级一下。有机会试用下 LZ 的工具包。 |
42 xrui 2016-04-13 14:17:07 +08:00 via Android 原来备份网站直接 rsyns ,现在是打包再传,能改回原来的嘛……几个 G 流量就没了 |
43 kxjhlele 2016-04-13 14:20:13 +08:00 我更喜欢安装官方的,之后优化参数,感觉自己编译的和官方的没啥区别 |
44 tester4 2016-04-13 14:36:18 +08:00 我在用这个呢,挺好用的,想要 PHP7+APCU |
46 AstroProfundis 2016-04-13 17:40:56 +08:00 下午没事又搞了一遍,和 https://v2ex.com/t/87755 这里几乎完全一样方法 两台 OpenVZ 虚拟机 256MB RAM/256MB vSwap, 4 CPU, Debian Wheezy 64bit 更新到最新 装上 WordPress 3.7.1 英文版并导入主题测试用例 再从同母机的第三台虚机用 ab 抓第二页 ab -n 25000 -c 50 http://hostname/?paged=2 ---- 首先是源安装,用了 dotdeb 的默认源 PHP 5.4.45-1~dotdeb+7.1 / MySQL 5.6.29 / nginx 1.8.1 除了 nginx 加上了 PHP 支持以外,全部使用默认配置 其 PHP 配置为: pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 结果: This is ApacheBench, Version 2.3 <$Revision: 1604373 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking x.x.x.167 (be patient) Server Software: nginx/1.8.1 Server Hostname: x.x.x.167 Server Port: 80 Document Path: /?paged=2 Document Length: 48526 bytes Concurrency Level: 50 Time taken for tests: 7082.100 seconds Complete requests: 25000 Failed requests: 0 Total transferred: 1218625000 bytes HTML transferred: 1213150000 bytes Requests per second: 3.53 [#/sec] (mean) Time per request: 14164.201 [ms] (mean) Time per request: 283.284 [ms] (mean, across all concurrent requests) Transfer rate: 168.04 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 2 Processing: 1052 14149 1201.5 13998 19505 Waiting: 154 12951 1037.2 12671 17456 Total: 1054 14149 1201.5 13998 19505 Percentage of the requests served within a certain time (ms) 50% 13998 66% 14600 75% 14957 80% 15202 90% 15765 95% 16223 98% 16772 99% 17149 100% 19505 (longest request) |
47 AstroProfundis 2016-04-13 17:46:26 +08:00 接下来使用楼主的 oneinstack 编译安装,尽量选择了和源安装一样版本的组件 PHP 5.4.45 / MySQL 5.6.29 / nginx 1.9.14 使用自带脚本新建虚拟主机安装 WordPress, 没有做任何性能相关的配置调整 其 PHP 配置为: pm = dynamic pm.max_children = 4 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 2048 pm.process_idle_timeout = 10s 结果: This is ApacheBench, Version 2.3 <$Revision: 1604373 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking x.x.x.169 (be patient) Server Software: nginx Server Hostname: x.x.x.169 Server Port: 80 Document Path: /?paged=2 Document Length: 48542 bytes Concurrency Level: 50 Time taken for tests: 6709.842 seconds Complete requests: 25000 Failed requests: 0 Total transferred: 1218475000 bytes HTML transferred: 1213550000 bytes Requests per second: 3.73 [#/sec] (mean) Time per request: 13419.683 [ms] (mean) Time per request: 268.394 [ms] (mean, across all concurrent requests) Transfer rate: 177.34 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 2 Processing: 1025 13407 1253.2 12827 19857 Waiting: 1024 13407 1253.1 12827 19857 Total: 1027 13407 1253.2 12827 19857 Percentage of the requests served within a certain time (ms) 50% 12827 66% 13784 75% 14249 80% 14535 90% 15274 95% 15782 98% 16355 99% 16821 100% 19857 (longest request) 结果略好于源安装,总时间较短但单个请求消耗的时间分布更散一些,这个结果比较符合我心目中自己编译的效果(没有明显性能优势但应当和集中打包的二进制表现相当或者略好) @vibbow @yesono 以及这次的两个结果明显比两年前的要好(物理机是同一台,而且我还专门找了老版本的 WordPress 来减少变量),说明程序本身的进步也不容忽视 为了排除进程切换的影响,我正在用和脚本配置一样的 php 在源安装的机器上跑第三遍 |
48 kenshin912 2016-04-13 18:34:29 +08:00 首先感谢楼主,目前 Oneinstack 用在生产环境上. 我个人使用 Oneinstack 的时候,每次安装都要一个个选择,所以修改了 install.sh 并且删掉了很多不用的东西后重新打包了一下,楼主不会打我吧... |
49 yesono OP @kenshin912 O(∩_∩)O 哈哈~ ,可以的。。。 |
50 beyoung 2016-04-13 18:56:06 +08:00 可以做几个预设的 环境 常见的组合 一个个选也的确略显麻烦 |
52 zjxubinbin 2016-04-13 20:28:01 +08:00 特地来感谢楼主~ |
53 zhs227 2016-04-13 20:53:54 +08:00 在用,很好用,支持楼主! |
54 zhs227 2016-04-13 20:55:04 +08:00 希望支持通过配置文件 provision 功能,不用交互输入。这样用在自动化环境上实现可复制安装。 |
55 DIYgod 2016-04-13 21:50:58 +08:00 赞赞赞,我也在用,感谢~ |
56 ivmm 2016-04-13 22:21:14 +08:00 APCU 已经支持 PHP7 了 |
58 yesono OP @xrui 网站数据内容小于 1G (不包含数据库)会自动生成 tgz 包 大于 1g 压缩可能太消耗系统资源,数据备份是 rsync |
59 daiv 2016-04-13 22:44:18 +08:00 我也用过一次,感觉体验不错。 以后继续用的时候,反馈一下体验。 非常支持。毕竟军哥的 lnmp 更新慢,安装也慢 |
60 Daddy 2016-04-13 23:25:55 +08:00 留言感谢一下,一直在用你们的脚本在自己的 VPS 上 |
61 swsh007 2016-04-13 23:31:28 +08:00 这个要赞一下。 |
62 guonning 2016-04-13 23:31:37 +08:00 via iPhone 在用,很好用 |
63 ewBuyVmLZMZE 2016-04-13 23:42:12 +08:00 嗯,加上 OpenResty 了?不枉我在你的 QA 里面留言建议。 |
64 zetttt 2016-04-14 01:41:03 +08:00 在用,感谢 |
65 LeoSocks 2016-04-14 06:44:58 +08:00 via Android 在用,非常不错啊 |
67 fengtalk 2016-04-14 08:45:51 +08:00 不错!目前使用当中…… |
68 AstroProfundis 2016-04-14 10:22:05 +08:00 在把源安装调整成和编译安装一样的 PHP 设置(进程数和 CPU 核数相同)之后,结果变成了源安装比编译安装略好 PHP 配置: pm = dynamic pm.max_children = 4 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.process_idle_timeout = 10s pm.max_requests = 2048 rlimit_files = 51200 rlimit_core = 0 结果: This is ApacheBench, Version 2.3 <$Revision: 1604373 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking x.x.x.167 (be patient) Server Software: nginx/1.8.1 Server Hostname: x.x.x.167 Server Port: 80 Document Path: /?paged=2 Document Length: 48526 bytes Concurrency Level: 50 Time taken for tests: 6568.194 seconds Complete requests: 25000 Failed requests: 0 Total transferred: 1218625000 bytes HTML transferred: 1213150000 bytes Requests per second: 3.81 [#/sec] (mean) Time per request: 13136.388 [ms] (mean) Time per request: 262.728 [ms] (mean, across all concurrent requests) Transfer rate: 181.19 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 3 Processing: 1030 13123 514.0 13130 17304 Waiting: 158 12224 499.5 12236 15666 Total: 1033 13123 514.0 13130 17304 Percentage of the requests served within a certain time (ms) 50% 13130 66% 13209 75% 13258 80% 13289 90% 13381 95% 13508 98% 14403 99% 15127 100% 17304 (longest request) 所以目前的结论是: php-fpm 的 max_children 要设置成和 CPU 核心数(逻辑核心 /进程数)相同 |
69 yesono OP @AstroProfundis 最优值不一定是这个,建议压测得出结果,可参考: https://blog.linuxeye.com/380.html |
71 tangzhehao 2016-04-14 19:06:53 +08:00 yeho 好~ |
72 loser 2016-04-18 00:16:52 +08:00 我试试。。。 |
73 loser 2016-04-18 00:57:41 +08:00 Complete! 在 messagebus 服务中读取信息时出错:没有那个文件或目录 在 irqbalance 服务中读取信息时出错:没有那个文件或目录 在 syslog 服务中读取信息时出错:没有那个文件或目录 setenforce: SELinux is disabled sed :无法读取 /etc/selinux/config :没有那个文件或目录 hostname: 未知的主机 sed: 无法重命名 /etc/sed6Nx5vR :设备或资源忙 error: "Read-only file system" setting key "net.ipv4.ip_forward" error: "Read-only file system" setting key "net.ipv4.conf.default.rp_filter" error: "Read-only file system" setting key "net.ipv4.conf.default.accept_source_route" error: "Read-only file system" setting key "kernel.sysrq" error: "Read-only file system" setting key "kernel.core_uses_pid" error: "net.ipv4.tcp_syncookies" is an unknown key error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key error: "Read-only file system" setting key "kernel.msgmnb" error: "Read-only file system" setting key "kernel.msgmax" error: "Read-only file system" setting key "kernel.shmmax" error: "Read-only file system" setting key "kernel.shmall" error: "Read-only file system" setting key "fs.file-max" error: "Read-only file system" setting key "fs.inotify.max_user_instances" error: "net.ipv4.tcp_fin_timeout" is an unknown key error: "net.ipv4.tcp_tw_reuse" is an unknown key error: "net.ipv4.tcp_tw_recycle" is an unknown key error: "Read-only file system" setting key "net.ipv4.ip_local_port_range" error: "net.ipv4.tcp_max_syn_backlog" is an unknown key error: "net.ipv4.tcp_max_tw_buckets" is an unknown key error: "net.ipv4.route.gc_timeout" is an unknown key error: "net.ipv4.tcp_syn_retries" is an unknown key error: "net.ipv4.tcp_synack_retries" is an unknown key error: "Read-only file system" setting key "net.core.somaxconn" error: "net.core.netdev_max_backlog" is an unknown key error: "net.ipv4.tcp_timestamps" is an unknown key error: "net.ipv4.tcp_max_orphans" is an unknown key sed :无法读取 /etc/sysconfig/i18n :没有那个文件或目录 18 Apr 00:58:20 ntpdate[481]: Can't adjust the time of day: Operation not permitted grep: /var/spool/cron/root: 没有那个文件或目录 Starting crond: [ OK ] iptables: Setting chains to policy ACCEPT: filter nat [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: iptable_filter iptable_nat ip[FAILED]lter iptable_nat ip_tables iptables: Applying firewall rules: [ OK ] 来自网易蜂巢安装测试 |
76 ibiner 2016-06-18 05:26:51 +08:00 LZ 做的很到位,很好用。不知道 256M 的小 VPS 能 yong |
78 lyhiving 2016-12-13 23:01:48 +08:00 @yesono 不知道你有没有看这个回复,我目前在用 oneinstck ,感觉很不错。还是提个建议: 1 、 nginx 编译的时候能不能加上个--with-http_sub_module ,每次都要手动添加,差点就 fork 后再改了。 2 、 php 的升级不要一定是升级,其实我多次用来降级,感觉还是可以的。 |
80 bbbbbbbk 2017-04-01 16:28:40 +08:00 非常好用,受益匪浅,感谢 |
81 songkqx1c 2017-05-15 11:44:36 +08:00 oneinstack 怎么为网站正式域名添加一个测试地址呢 |
82 superay 2017-09-12 10:01:07 +08:00 支持一下,还没用过,准备试试。 |
83 RorschachZZZ 2017-10-24 17:54:43 +08:00 好用,点赞。 |
84 artoostark 2018-04-15 23:01:38 +08:00 @DIYgod 大佬你好 |
85 kelestudio 2018-10-18 15:31:24 +08:00 提一个小问题.因为我服务器在国内.很多时候下载国外的源码包下载不下载,被墙了. 这块能否考虑下,比如把很多包下载下来打包一个 full 安装包.或者 wget 的 URL 指定为国内的某个镜像点(比如某大学). |