虚拟主机和VPS的性能的一个重要区别

王志勇 发表于 2019年06月01日 07:22

本博客在2006-2016年一直用虚拟主机,2016年后一直用VPS。现在即使是用美国主机,速度还是很快。速度快,并不是因为配置有多好(现在用的是单核/256M内存/SSD),而是因为解决了CentOS/Ubuntu/Debian系统的一个重要瓶颈:彻底关闭了所有的日志,所以能一直保持新机的速度。Linux系统、Apache/Nginx、PHP的日志文件如果不关闭,特别是Linux系统的日志,很快会达到几兆、上百兆,所以速度越来越慢。关闭日志的方法,如我写的前文:《幸福来得太快!》。为什么说幸福来得太快?因为原本需要几年才能解决的瓶颈问题,现在不到半个小时就彻底解决了。

虚拟主机和VPS使用一样的系统,也是CentOS/Ubuntu/Debian系统。但是虚拟主机的限制非常非常多,无法对Linux系统进行任何操作、修改,甚至无法修改Apache配置文件。当然,也就无法手动关闭日志。主流的虚拟主机商,所有的日志都是开启的。

日志的存在,是影响虚拟主机、VPS性能的一个主要瓶颈。

由于虚拟主机无法关闭日志,在这一点上,虚拟主机没有任何优势可言,预算足的话肯定选择VPS。但虚拟主机现在还有一点优势:
1. 虚拟主机价格更便宜。
2. 虚拟主机可直接上手,几乎不用学习。VPS需要至少3天的最初的学习时间,搭建和配置Web服务器的环境。VPS的调试,本身就是一个重要的学习/自学过程。VPS的调试,至少也需要经历几个月,我就是经历了至少几个月的调试时间,当时我的很多的调试也是为了开发VPS面板。
一回生二回熟,等熟悉了VPS的搭建、配置,会发现反而比虚拟主机容易使用
3. VPS的内存大小,需要观察在用的程序占用的内存数来决定,方法和测试命令如前文
除非是全静态,可以用128M内存的VPS。为了防止系统崩溃而导致数据写入错误,最轻量的动态程序,建议最少得256M内存起步。
而虚拟主机,可能不需要考虑内存的问题,因为内存是共享的。

功能上,VPS比虚拟主机强1000倍都不止。只要有时间开发,对于开发者,VPS、独立服务器是唯一的选择。VPS和独立服务器因为用的系统完全一样,所以功能上的区别很少。

VPS和独立服务器现在大多使用CentOS、Ubuntu、Debian这3种系统。这3种系统,原本是用于个人PC版。后来被专业人员开发为Web服务器,对于Web服务器,其实3种系统并不是最佳的的选择,因为它们是大而全的系统,日趋臃肿,但现在我们只能用这些系统。我的解决办法是,尽量用还能用的最老的版本的系统。

15条评论:
1   angel2018 2019-06-01 07:43
勇哥,早!
请教一下,我的vps空间是不是也可以关掉日志?关掉后,会不会影响zblog博客程序?

自由勇 2019-06-01 08:03
Hi,早。:)
可以关闭,经过这几年的测试,关闭后没有任何影响。
不过,关闭日志后,可能会有极个别程序不让运行,比如关闭日志后无法安装Let’s Encrypt。

2   angel2018 2019-06-01 10:20
勇哥,好的,收到!
看你关闭日志一文介绍,
有两步,1步是把程序结束,2步是把日志log目录改名。(如直接使用第2步,再重启vps可以吗?)
我试一下,遇到搞不定向你请教。

自由勇 2019-06-01 10:23
Ubuntu下直接把/usr/sbin/rsyslogd和/var/log改名即可。为了避免错误,Apache、PHP也需要在配置文件里关闭一下日志,默认都是开启的。

3   angel2018 2019-06-01 10:33
勇哥,够详细,大德! :)
4   青山 2019-06-01 14:32
儿童节了,是不是该陪陪孩子啦哈哈
5   angel2018 2019-06-02 05:26
勇哥,我测试过,先修改1./usr/sbin/rsyslogd和2./var/log
重命名了,重启vps,网站打不开。把log 改回来,重启vps,网站可以打开。

php.ini文件目录没有找到,就没改。
想问下,勇哥。是先做另外两个修改,php.ini和CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined 这两个,然后,再改上面的2个重命名吗?

自由勇 2019-06-02 05:39
整个都修改尝试一下,所有的步骤我都与在了《幸福来得太快》。
php.ini在Ubuntu的路径是/etc/php5/apache2/php.ini,在php.ini里找到这一行:log_errors。默认值为On,改为:
log_errors=Off

/var/log/apache2/other_vhosts_access.log,我记得这一项当时调试了非常多的时间才成功,当时在网上搜了很久都没找到解决的方法,最后自己试出来的。因为它的配置方法藏得过深,没有在/etc/apache2/apache2.conf文件里,而是藏到了/etc/apache2/conf-available/other-vhosts-access-log.conf。

6   angel2018 2019-06-02 05:58
勇哥,这一项改了重启可以,(Ubuntu+Apache,还多出了一个/var/log/apache2/other_vhosts_access.log的文件),我再试过改log为别的命,还是不能打开网站。再改回log就可以打开网站。

自由勇 2019-06-02 06:19
如果把/var/log改名后,网站不能访问,此时可以尝试用IP地址访问,或者建立一个新站点,看一下是不是都不能访问?

如果都不能访问,就是相关的设置的原因。如果只有一个站点不能访问,就是站点的程序的原因。

或者此时输入shell命令:
service apache2 restart

查看一下重启Apache后是否出现报错?因为Apache重启时出现报错,也会导致所有站点无法访问。

如果你的环境、设置都和我的《幸福来得太快》完全一样,那么网站可以运行,因为我的VPS现在就是这样的环境,/var/log我现在改名为/var/log2。

7   angel2018 2019-06-02 06:35
勇哥,是所有站点打不开。好的,我多试试几次。
现在就是,
1.改了rsyslogd,这个可以。
2.由于log改回会打不开全部,又重新还原为log.
3.php.ini 目前没能找到,就还没改动。
4./etc/apache2/conf-available/other-vhosts-access-log.conf 这一项,已经关闭,可以。

自由勇 2019-06-02 06:48
我刚用Ubuntu 14新机测试了一下,可以顺利给/var/log改名,网站能正常访问,没有自动还原的现象。
Ubuntu系统的/var/log我改了很多次,从来没有出现过网站不能访问的情况。CentOS,/var/log改名后会出现网站不能访问。

有可能是你的VPS,有某个设置和我的不同。
或者可能由于Apache、PHP等其它环境有某个日记没有关闭。

自由勇 2019-06-02 06:59
刚发现有一处我记错了,需要更正一下:
Ubuntu 12、14+Apache的php.ini的路径是:
/etc/php5/apache2/php.ini

8   angel2018 2019-06-02 07:01
勇哥,我也是这么想的,vps环境是相同的。应该是我的一些配置不同。

我重启apache2,提示这个, * Restarting web server apache2 [Sun Jun 02 00:00:12.978508 2019] [so:warn] [pid 2046] AH01574: module rewrite_module is already loaded, skipping
[Sun Jun 02 00:00:12.979468 2019] [so:warn] [pid 2046] AH01574: module rewrite_module is already loaded, skipping
[Sun Jun 02 00:00:12.981205 2019] [so:warn] [pid 2046] AH01574: module ssl_module is already loaded, skipping

不知道是不是我之前设置ssl的时候,乱写了配置,没有还原回来。打开网页能正常访问,就没有去找原因。也有可能跟这个有关系。

自由勇 2019-06-02 07:09
是的,很可能是和SSL有关系。

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (43周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2023 auiou.com All rights reserved.
此Blog程序由王志勇编写