L.A.M.P 体系环境优化总结

本文档详细介绍了L.A.M.P.架构下Linux、Apache、PHP及MySQL的优化策略,包括系统安装配置调整、服务关闭、内核升级、文件系统选择、Apache预编译优化、PHP模块编译、MySQL配置等,旨在提高网站性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

L.A.M.P 体系环境优化总结

作者:Nanu
出处:PHPChina ( [url=http://www.phpchina.com]http://www.phpchina.com[/url] )
如需转载请注明出处!谢谢:)

这篇文章其实只是一个“提纲”,是以前我做的一个笔记,希望和大家探讨 L.A.M.P 架构的优化心得!:)

L.A.M.P 体系优化

一、Linux系统优化
=================
1. 安装Linux
------------
(1) 选择Redhat Enterprise Linux Advanced Server 3/4 或 CentOS 3/4
    如果准备使用Apache2 Worker MPM 则选择 4.x;
(2) 仅选择用到的包安装;
2. 配置Linux
------------
(1) 安装完成后对系统关键性参数进行微调:
    ################
    /etc/sysctl.conf
    ################
    net.ipv4.ip_forward = 0
    net.ipv4.conf.default.rp_filter = 1
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    net.ipv4.ip_default_ttl = 128
    net.ipv4.tcp_syncookies = 1
    net.ipv4.ip_conntrack_max = 65536
    net.ipv4.ip_dynaddr = 1
    net.ipv4.icmp_ignore_bogus_error_responses = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.tcp_keepalive_time = 1800
    net.ipv4.tcp_window_scaling = 0
    net.ipv4.tcp_sack = 0
    net.ipv4.tcp_timestamps = 0
    net.ipv4.ipfrag_time = 15
    net.ipv4.tcp_max_syn_backlog = 2048
    net.ipv4.tcp_abort_on_overflow = 1
(2) 关闭不需要的系统服务以节省内存并提升系统稳定性;
(3) 升级OpenSSL以及OpenSSH以提升安全性;
(4) 编译升级内核,使内核与系统完美配合。 (Dangerours & Experiened)
(5) 可将数据分区转换为ReiserFS文件系统以提升磁盘对小文件的读写性能。

二、Apache优化
==============
1. 安装Apache
-------------
(1) 使用GCC参数传递法在预编译阶段针对服务器CPU进行优化;
(2) 分析应用需求只编译进所需模块,并以动态模块方式编译;
(3) 如果使用Apache2.0/2.2并且搭配REDHAT AS/CentOS 4,则可以使用
    Worker MPM。
2. 配置Apache (httpd.conf)
--------------------------
(1) Timeout
(2) KeepAlive
(3) <IfModule prefork.c>
       StartServers         5
       MinSpareServers      5
       MaxSpareServers     10
       ServerLimit   1024
       MaxClients          800
       MaxRequestsPerChild  0
    </IfModule>
(4) 如不需要 .htaccess ,则将 <Files .htaccess> 设置为 None;
(5) mod_gzip;
(5) 如需 Rewrite Rule,则尽量少。

三、PHP优化
===========
1. 安装PHP
----------
(1) 尽量选择PHP 5.1系列;
(2) 使用 GCC 参数传递法在预编译阶段针对服务器CPU进行优化;
(3) 分析应用需求只编译进所需模块。
2. 配置PHP (php.ini)
--------------------
(1) zlib.output_compression = On
(2) disable_functions = phpinfo,passthru,exec,system,popen,chroot,
                        escapeshellcmd, escapeshellarg,shell_exec,
                        proc_open,proc_get_status
(3) max_execution_time =
(4) memory_limit =
(5) register_globals =
(6) post_max_size =
(7) upload_max_filesize =
(8) session.save_path = /dev/shm
3. Zend Performance Suite 与 Zend Optimizer
-------------------------------------------
(1) Zend Performance Suite 3.6.0 只能支持PHP 4.3.11以及以下版本;
(2) Zend Performance Suite 3.6.0 先于 Zend Optimizer安装;
(3) Zend Optimizer 2.6版本以下的zend_optimizer.optimization_level = n
    n = 2^m - 1,m = 加速阀值
四、优化MySQL
=============
1. 安装MySQL
------------
(1) 不要选择 Source Code 编译,尽量选择Binary或RPM;
(2) 由于PHP 5.1不再集成MySQL Headers & Libraries,因而安装 RPM MySQL 5.0
    系列时同时需要安装 MySQL-devel包;
2. 优化MySQL (my.ini)
---------------------
(1) my.ini的选择;
(2) my.ini范例 (4GB Memory)
    [mysqld]
*  skip-innodb
*  skip-name-resolve
*  skip-locking
*  skip-networking
*  #bin-log
*  key_buffer=768M
    max_allowed_packet=4M
    table_cache=1024
    thread_cache=64
    join_buffer_size=32M
    sort_buffer=32M
    record_buffer=32M
*  max_connections=1024
*  wait_timeout=5
    interactive_timeout=120
    max_connect_errors=30000
*  long_query_time=1
*  log-slow-queries=/var/logs/mysql_slow.log
    max_heap_table_size=256M
    tmp_table_size=128M
*  thread_concurrency=CPU*2
    myisam_sort_buffer_size=128M
3. MySQL 集群探讨
-----------------
(1) MySQL-Cluster;
(2) MySQL Replication;
      2.1 Token Ring
      2.2 Master + [n]Slave
            2.2.1 优点 (Load Blance, High Performance, Easy)
            2.2.2 缺点 (Crash & Recover, Single-Point Crash)

cator 发表于 2006-12-20 12:54

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值