UNIX服务器搭建手册标准版之服务器优化手册

UNIX服务器搭建手册标准版之服务器优化手册

 

提纲

  • UNIX内核优化…………………………………………………………………………………

 

  • UNIX系统优化………………………………………………………………………………..

 

  • APACHE优化…………………………………………………………………………………..

 

  • PHP优化………………………………………………………………………………………..

 

  • MYSQL优化……………………………………………………………………………………

 

  • FTP服务器优化……………………………………………………………………………….

 

  • MAIL服务器优化………………………………………………………………………………

 

  • DNS服务器优化……………………………………………………………………………….

 

  • LOG日志服务器优化………………………………………………………………………….

 

  • SQUID缓存服务器优化……………………………………………………………………….

 

  • CVS服务器优化………………………………………………………………………….

  • UNIX内核优化

重新编译内核

优化编译环境
更新/etc/make.conf文件,做适当的编译优化, 如果CPU是Intel的:

CPUTYPE=i686
CFLAGS= -O3 -pipe
COPTFLAGS= -O3 -pipe

 

编译内核,加入以下参数

#disable ctrl+alt+delete
options SC_DISABLE_REBOOT

#quota limit
options QUOTA

优化内核参数

修改系统内核参数,实现微调:vi /etc/sysctl.conf

kern.ipc.somaxconn=8192
kern.ipc.maxsockbuf=2097152
kern.maxfilesperproc=32768
kern.maxfiles=65536
kern.securelevel=-1
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=32768
net.inet.udp.maxdgram=57344
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=0
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
net.inet.icmp.icmplim=100
net.inet.tcp.always_keepalive=0
net.inet.tcp.delayed_ack=0
net.inet.tcp.log_in_vain=0
net.inet.udp.log_in_vain=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.local.stream.sendspace=65535
net.local.stream.recvspace=32768
net.inet.ip.fastforwarding=1
vfs.vmiodirenable=1

 

  • UNIX系统优化

升级源码树

安装cvsup
进入:/usr/ports/net/cvsup

make clean
make deinstall
make install
make clean

即可

升级系统源码树及ports

更新/usr/share/examples/cvsup目录下stand-cvsup和ports-cvsup文件,并执行cvsup –g –L2 standard-supfile和cvsup –g –L2 ports-cvsup两个文件,升级ports树﹔

重新编译内核

优化编译环境
更新/etc/make.conf文件,做适当的编译优化,如果CPU是Intel的:

CPUTYPE=i686
CFLAGS= -O3 -pipe
COPTFLAGS= -O3 -pipe

升级操作系统

进入/usr/src
执行make world
整个过程很久,需要2小时左右.

升级配置文件

执行mergemaster升级配置文件,在此过程中,需要按i以便系统执行升级﹔

 

  • APACHE优化.
    • conf优化

在httpd.conf 加入以下内容:

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 10

 

<IfModule prefork.c>

ServerLimit 2000

Startservers 10

MinSpareServers 10

MaxSpareServers 15

MaxClients 1000

MaxRequestsPerChild 1000

</IfModule>

B、启用了单独一个IP的并发链接数设置。

使用MOD_LIMITIP限制IP连接数
# wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz
# tar –zxvf mod_limitipconn-0.22.tar.gz
# cd mod_limitipconn-0.22
# vi Makefile
修改相关路径适应你的系统
# make install
# vi /usr/local/etc/apache2/httpd.conf
=========+===========+===========+============
<IfModule mod_limitipconn.c>
<Location / >                 //设置要控制的目录
MaxConnPerIP 10              //限制单IP最大进程数
NoIPLimit image/*             //非限制的文件类型
</Location>
<Location /mp3>
MaxConnPerIP 1
OnlyIPLimit audio/mpeg video       //可选限制的文件类型
</Location>
</IfModule>

 

  • mysql优化
    • cnf优化

#cp /usr/local/share/mysql/my-huge.cnf /etc/my.cnf

#cd /etc

# vi  my.cnf 修改并增加如下内容:

[mysqld]

skip-locking
connect_timeout=15
interactive_timeout=100
join_buffer_size=1M
key_buffer=128M
max_allowed_packet=16M
max_connections=500
max_connect_errors=10
myisam_sort_buffer_size=64M
read_buffer_size=1M
read_rnd_buffer_size=768K
sort_buffer_size=1M
table_cache=1024
thread_cache_size=100
thread_concurrency=4
wait_timeout=300
query_cache_size=32M
query_cache_limit=1M
query_cache_type=1

long_query_time = 5

bind-address = 127.0.0.1

local-infile= 0

tmp_table_size = 100M
skip-innodb

 

 

log-slow-queries= /var/log/slow.log

 

  • php优化

php.ini的优化

确认你的 register_globals 配置为disabled

禁用 magic_quotes_* 选项

关闭 expose_php

关闭 register_argc_argv

除非绝对需要不要启用 always_populate_raw_post_data

  • FTP服务器优化.

修改pure-ftpd.conf

a、限定最大的客户端访问数。

MaxClientsNumber            50

b、每个ip最多链接数,最好设小点。

MaxClientsPerIP              5

C、不反向解释客户端的ip

DontResolve   yes

D、最大闲置時間

MaxIdleTime  5

e、ls最多列出3000个文件.最深8层

LimitRecursion       2000 8

f、支不支持FXP

AllowUserFXP        yes

g、当硬盘使用率到多少時将停止上传.

 

MaxDiskUsage         99

  • MAIL服务器优化。

在main.cf 设置如下参数:

qmgr_message_active_limit = 7000
local_destination_concurrency_limit = 600
default_destination_concurrency_limit = 600
default_process_limit=600
process_limit=600

 

  • DNS服务器优化

以下优化是针对bind源代码安装的方式。

  • 变编译选项;BIND默认的编译选项中有个选项为“—O2”,该为“—O3”后
  • 使用ICC编译器,对于应用软件的编译,使用intel 公司ICC编译器相对于GCC编译器有程度不等的提升。最乐观的情况下会有20%以上的性能提升.

C、调整DNS服务线程数;目前使用的BIND版本基本上都支持多线程(启动named后,用命令ps –eLF | grep named查看),但是默认的线程数并不一定是最好的。因此调整服务的线程个数来使当前硬件达到最大性能是很有必要的。修改方法在 dns 服务启动文件中前面加入OPTIONS=“-n NUM”一行,NUM为指定进程数。然后启动服务用上述命令查看是否是设定的线程数,然后通过BIND自带的测试工具queryperf(在BIND源码包的bind-VERSION/contrib/queryperf/目录下)来测试自己DNS服务器的最大QPS。不同的硬件的测试结果也不一样。一般提高的幅度还都比较大。

  • 日志服务器优化

针对awstats日志分析。

1、安装GeoIP

2、安装p5-GeoIPfree

3、安装p5-Geo-IP

 

4、编辑:awstats.ding9.conf  加入以下内容:

LoadPlugin=”decodeutfkeys”

LoadPlugin=”tooltips”

  • SQUID 缓存服务器优化

针对squid.conf的优化

#取消对代理阵列的支持
icp_port 0

访问控制设置
acl mynet src 192.168.1.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
http_access allow mynet
http_access deny all

swap 性能微调
half_closed_clients off
cache_swap_high 100%
cache_swap_low 80%
maximum_object_size 1024 KB

#这几句其实是强行控制对象的超时时间,这违反了http协议的精神,但是在带宽较窄的场合,可以提高明显系统相应时间。

refresh_pattern -i .html 1440 90% 129600 reload-into-ims
refresh_pattern -i .shtml 1440 90% 129600 reload-into-ims
refresh_pattern -i .hml 1440 90% 129600 reload-into-ims
refresh_pattern -i .gif 1440 90% 129600 reload-into-ims
refresh_pattern -i .swf 1440 90% 129600 reload-into-ims
refresh_pattern -i .jpg 1440 90% 129600 reload-into-ims
refresh_pattern -i .png 1440 90% 129600 reload-into-ims
refresh_pattern -i .bmp 1440 90% 129600 reload-into-ims
refresh_pattern -i .js 1440 90% 129600 reload-into-ims

  • CVS服务器优化
    • 首先正确创建用于CVS的组和用户:
    • 修改配置文件:
      #cat/etc/services|grep cvspserver
      看看是否有:
      cvspserver    2401/tcp #CVS client/server operations
      cvspserver    2401/udp #CVS client/server operations
    • 初始化CVS
      切换到cvsroot用户,然后进行初始化:
      cvs -d /home/cvsroot init
    • /sbin/service xinetd restart
      当然,重新启动计算机也可以。确认是否启动:
      netstat -anp|grep 2401
      如果能看到:
      tcp 0 0 0.0.0:2401
      说明已经正常启动,

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注