Press "Enter" to skip to content

Month: February 2013

512M VPS上Apache性能和内存优化

最近廉价的VPS有越来越流行的趋势,但是很多廉价的VPS很多只有512M,甚至更少的内存,而Apache和MySQL这些建站必备的软件,又偏偏都是内存消耗大户,所以如何优化本来就不多的内存空间,就显得额外重要了。

注:本文是抓抓自己的经验之谈,没有什么权威性,欢迎理性的讨论和评价,拒绝出现诸如Nginx比Apache牛X很多之类的口水仗,谢谢。

虽然抓抓最喜欢和最熟悉的Linux发行版是Gentoo,但是通常在使用VPS时,我还是会安装主流的CentOS 5 32Bit版本。选择CentOS是因为CentOS是从Redhat演变而来,所以对大多数服务器软件的兼容性还算不错,比如Kloxo就可以在CentOS下面进行简易的一键安装,等等。而32Bit是因为可以避免使用64Bit的发行版而造成的诸多稀奇古怪的问题,相当稳定而且性能几乎没有什么差别,并且因为内存不超过4G而无需用到64Bit的寻址。

好了,言归正传。对于低端的VPS来说,因为内存本来就不是非常充足,所以如果你对Linux服务器平台的架设非常熟悉的话,完全可以不用什么控制面板;如果是一个初学者,出于方便的考虑,可以安装轻型的Kloxo控制面板,功能强大,内存占用少(大约4M~8M),除了功能排版有些混乱之外,其他该有的功能都有,不该有的功能也有,非常实用。

在优化Apache/MySQL之前,首先可以关掉一些不必要的后台守护进程,比如ClamAV(一个杀毒软件),你可以运行chkconfig –list查看哪些后台守护进程是不必要的,当然很多东西取决于你的具体应用。比如如果你不是经常登陆Kloxo,可以把Kloxo关闭;如果不发邮件,可以关闭QMail,等等。如果碰到一些自己不熟悉的进程,千万别忙着下手,先去Google一下,以免出现其他预料之外的问题。关闭自动启动可以使用chkconfig 守护进程名 off,但是内存中已经运行的守护进程不会被关闭,需要运行service 守护进程名 stop进行关闭。

2 Comments

Apache优化指南

调优是一个大主题,涉及面颇广。目前受条件所限,大部分人可能只能从apache本身入手调优。所以本文将主要从apache的配置方面入手来详解apache调优。希望对正在使用apache的朋友有所裨益,有什么问题欢迎交流探讨,大家共同学习共同进步!

KeepAlive参数
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 15
使用keepalive可以在单一连接时进行多个请求。
Keepalivetimeout 每个连接保持的时间
MaxKeepAliveRequests这个我就不解释了,意思是最大保持的连接数,0为不限制。
我在来形象的描述一下,KeepAlive中的连接就像是餐厅中的女服务员,而KeepAliveTimeout就是服务员的忍耐时间,我和几个哥们往店里一坐然后开始唠嗑,根本不理她,她不可能一直站在那吧?所以忍耐度一够她就撤了。
这个数目设多少合适呢?因服务器而异,就像五星级的餐厅和街边小餐馆的区别。

选择多处理模块(Multi-Processing Module,MPM)
这玩意主要负责管理网络连接、调度请求。理解成不同的社会制度就好,万恶的封建主义和万恶的资本主义,很难说的清谁好谁坏,所以针对不同情况选择就好。
每次只能有一种 MPM 被应用,必须使用 –with-mpm=(worker|prefork|event) 静态编译。Apache默认安装是使用一个进程的传统模型称为 prefork。较新的线程化模型称为 worker,它使用多个进程,每个进程又有多个线程,这样就能以较低的开销获得更好的性能。最新的 event MPM 是一种实验性的模型,为不同的任务使用单独的线程池。要确定当前使用的是哪种 MPM,可执行 httpd -l。

Leave a Comment

RedHat6/Centos6系统中更新python版本

CentOS 6中,Python的版本默认为2.6.6版本,而我们有很多工作可能需要更高的版本,而去Python官网的时候发现,Python的版本已经到3.3了,于是下载并升级了下CentOS中Python的版本。

1,准备工作
将系统中自带的python2.6.6更名一下,因为yum也使用了系统自带的python,所以最好也将yum里指定一下使用的python版本。另外,需要提前安装openssl和openssl-devel,以防止编译安装Python时无法加载SSL模块。

$ python -V    #查看当前版本

$ mv /usr/bin/python /usr/bin/python2.6.6

$ vim /usr/bin/yum
将第一行的/usr/bin/python修改为/usr/bin/python2.6.6

$ sudo apt install gcc g++ make libssl-dev python3-openssl
$ yum install gcc gcc-c++ make openssl openssl-devel

# 安装相关依赖. 需要在make之前做, 不然在运行get-pip.py时
# 会遇到zipimport.ZipImportError: can't decompress data; zlib not available的错误
$ sudo apt-get install zlib1g-dev
$ yum install zlib zlib-devel

2,下载并安装新版python

3.5.5版下载地址
$ wget https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz

2.7.5版下载地址
$ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2

$ tar jxvf Python-3.5.5.tgz
$ cd Python-3.5.5
$ ./configure --enable-optimizations    #这里的--enable-optimizations是可以省略的
$ make && make install
2 Comments

linux之sed用法

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法。sed命令行格式为:

sed [-nefri] ‘command’ 文件

常用选项:
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e∶直接在指令列模式上进行 sed 的动作编辑;
-f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i∶直接修改读取的档案内容,而不是由萤幕输出。

常用command:
a∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

2 Comments

PhotoShop抽出滤镜下载

滤镜是photoshop中一个超级实用的功能,用于复杂环境下的抠图,自从photoshop cs4版本以后,这个功能被去掉了。现在提供一个可供photoshop使用的滤镜下载,压缩包里有详细的使用文档,其实很简单,就是把滤镜文件拷贝到本机的photoshop目录下即可。

下载地址1下载地址2

4 Comments

RedHat5.5安装Apache2.4.3

一直听说Apache2.4版本有了重大更新,比如速度上超越了nginx等等。所以今天来装一遍试试。在安装过程中参考了这篇文章,但还是遇到些错误,现在记录一下。本文所有的软件可以在这里下载。

1,安装基础包

yum install gcc gcc-c++ zlib zlib-devel openssl openssl-devel libtool -y

2,安装pcre

cd pcre-8.20
./configure --prefix=/usr/local/pcre && make && make install

3,安装http 2.4.3

1 Comment