王志勇 发表于 2018年11月13日 11:02
大家的VPS普遍较快,并不是已经优化的原因,而是因为服务器的性能本身很高,即使没有优化,对速度的影响也较小。但如果再优化一下,是不是能让服务器发挥更好的性能?
请大家查看一下/var/log/btmp文件,是不是已经达到几十M,上百M了?这个文件很容易快速增长,是服务器性能的杀手,首先可以把这个文件删除。默认的这个系统错误文件,是开启的,网上也找不到彻底关闭它的办法。办法一定是有的,只是找到办法需要一定的时间。
在十多年前,大部分人都使用Windows服务器;如今由于Linux系统开源免费,成本大幅度降低,所以绝大部分人的博客、网站都使用Linux系统的服务器。Linux系统,又分为CentOS、Ubuntu、Debian等系统。其中,Ubuntu和Debian的命令、软件环境都一模一样,多数情况可以认为是同一个系统。除此之外,还有别的现行Linux系统,很多都分别与CentOS、Ubuntu的命令、软件环境一样。
因此,只要以CentOS、Ubuntu为例,其它系统都完全同理,比如Debian系统完全能用本文里介绍的Ubuntu的方法。最简单的区别的办法,如果安装软件、或update的命令是以yum开头,则与CentOS系统相似;如果是以apt-get开头,则与Ubuntu系统相似。
CentOS和Ubuntu系统,关闭/var/log/btmp文件的方法不同。CentOS的方法很简单,Ubuntu用相同的方法不起作用,只能用“暴(隔开)力”的方法。
CentOS或类CentOS系统::
CentOS 6运行这个命令即可关闭btmp文件:
killall -9 rsyslogd
CentOS 5运行这个命令即可关闭btmp文件:
killall -9 syslogd
说明:CentOS 7没来得及测试,理论上应该和CentOS 6一样。这个命令,每次重启后会失效,需要再运行一次。为防止忘记,或者服务器因某种原因被迫重启,可以把这个命令写在开机自启文件里。以前我测试过几个工作日,直接写,依然不生效。解决办法是使用sleep延时语句,让它开机3分钟后再运行此命令,在CentOS下能生效。
但sleep进程,不会自动清除,所以需要再加个killall -9语句来杀掉sleep进程。
这个sleep语句,如果直接写sleep 180,依然不生效。之后我改成了sleep 60; sleep 120;,大部分时间都是生效的。
步骤:修改CentOS的/etc/rc.local文件。如果有exit 0这个语句,这一行必须删除。
CentOS 6或7加入这一行:
sleep 60; sleep 120; killall -9 rsyslogd; killall -9 sleep;
CentOS 5加入这一行:
sleep 60; sleep 120; killall -9 syslogd; killall -9 sleep;
Ubuntu或类Ubuntu系统:
理论上使用和CentOS一样的方法,也能生效,但是实际完全不起作用,因为结束rsyslogd进程后,马上自动产生一个新的rsyslogd进程。只能用“暴(隔开)力”方法,这个暴(隔开)力,是对系统的文件进行修改,可能会产生致命错误,经过测试,网站目前运转良好,本文以Ubuntu 14为例。
尝试步骤1:
/usr/sbin/rsyslogd 将rsyslogd这个文件改名。
重启VPS,命令:
reboot
之后发现,虽然rsyslogd进程自动永久消失了,但/var/log/btmp文件仍然在继续增大,说明Ubuntu系统即使没有了rsyslogd进程,此文件仍然在增大。而CentOS系统,经过我这2年多的测试,只要没有rsyslogd、syslogd进程,这个文件是不会增加的。
尝试步骤2:
最后,干脆把/var/log目录改名,改为/var/log2,重启VPS,整个世界都安静了,网站也运行良好,没有出现致命错误。
Apache、Nginx、PHP的重要日志优化:
默认的日志文件全部是开启的,而且很快变会得很巨大,是服务器性能的杀手。这些文件,包括访问日志、错误日志。如果没有特殊必要,建议将这些日志文件全部关闭。除非用于网站错误调试期,调试完尽快关闭。
这部分以后我会逐渐写一个完整的指南,由于时间的关系,这里简要说明一下。首先打开/var/log目录,Apache、Nginx在CentOS、Ubuntu下的路径有所不同,但是同理,比如这样的目录:
/var/log/httpd
/var/log/apache2
/var/log/nginx
/var/log/php-fpm
主要就是在这4种目录里。请打开这些目录,都是日志文件,是不是有的文件很巨大呢?其中,文件名带有“error”,为错误日志;带有“access”,为访问日志。打开这些错误文件,会发现里面有大量的无关语句,比如蜘蛛会访问网站上大量不存在的文件,这些都会写入错误日志里。
因为我使用Apache为主,所以Nginx的日志关闭方法暂时空缺,请大家搜索一下,时常监测这些日志文件、并清理。
Apache的错误日志的关闭方法,网上大多是将Apache的配置文件上的这一行删除、或加注释。但实际上不起作用,正确的方法是,CentOS+Apache、Ubuntu+Apache将此行改为:
ErrorLog Off
访问日志,只要将带有CustomLog logs/access_log的行删除,就能起作用,例如将这2行删除:
#CustomLog logs/access_log common
CustomLog logs/access_log combined
修改php.ini文件:
CentOS/Ubuntu+Apache/Nginx的php.ini的路径都不同。列举几个路径:
/etc/php.ini (CentOS+Apache+PHP,或CentOS+Nginx+PHP)
/etc/php5/apache2/php.ini (Ubuntu+Apache+PHP)
/etc/php5/fpm/php.ini (Ubuntu+Nginx+PHP)
在php.ini里找到这一行:log_errors。默认值为On,改为:
log_errors=Off
重启Apache。
Ubuntu+Apache或类Ubuntu+Apache:
Ubuntu+Apache,还多出了一个/var/log/apache2/other_vhosts_access.log的文件,这个文件会不断增大。解决的办法是:
/etc/apache2/conf-available/other-vhosts-access-log.conf 里的这一行:
CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined 将这一行删除,或者在这一行的最前面加#
重启Apache。
是不是有些复杂呢?一点不复杂。练习几次,并做关键的本机笔记,每次只要10分钟就搞定了。VPS,比虚拟主机好用太多了,因为虚拟主机是无法关闭这些日志的。
2018-11-13 12:19更新:
为什么CentOS 6不用删除rsyslogd文件的办法?路径为/sbin/rsyslogd。
删除rsyslogd文件,只适用于Ubuntu、类Ubuntu系统。
CentOS删除了此文件,重启VPS后,网站会无法访问,今天测试了半个多小时,重启Apache也不行,所以CentOS系统的rsyslogd、syslogd文件不能删除,只能用结束进程的方式。
2018-11-13 17:49更新:
为什么标题用“幸福来得太快”?因为差一点要彻底放弃用Ubuntu系统(我喜欢用能优化的系统),Ubuntu系统的rsyslogd进程用killall -9命令结束进程后,马上就会再跳出一个rsyslogd,从而无法阻止/var/log/btmp文件的增大。当时想着要解决这个问题起码得半年时间的调试,没想到不到半个小时就调试出了解决办法,解决了一个大难题。所以说,幸福来得太快!
虽然这些文章正在增多,但实际上,VPS的安装、配置比我们想象中容易得多,新机通常在半小时内能完成整个安装、配置。
CentOS删除了此文件,重启VPS后,网站会无法访问,今天测试了半个多小时,重启Apache也不行,所以CentOS系统的rsyslogd、syslogd文件不能删除,只能用结束进程的方式。
这几天安装了几十次Ubuntu+Apache,已基本熟练。干脆把这些安装、配置、优化配置都写成一个一键的shell命令,例如前文的日志优化,已经写到一键shell命令里。
速度快,并不是因为配置有多好(现在用的是单核/256M内存/SSD),而是因为解决了CentOS/Ubuntu/Debian系统的一个重要瓶颈:彻底关闭了所有的日志,所以能一直保持新机的速度。Linux系统、Apache/Nginx、PHP的日志文件如果不关闭,特别是Linux系统的日志,很快会达到几兆、上百兆,所以速度越来越慢。
虚拟主机默认的服务器配置,Apache/Nginx错误日志、Apache访问日志、php.ini错误日志、系统错误日志,这4部分的日志全部是开启的,无法关闭,而VPS则可以通过一定的方法关闭所有的错误日志。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +