`

[精华] 针对Web服务器总体优化

 
阅读更多
一、文件系统
在fstab里加入noatime,如
#cat /etc/fstab
/dev/sda1          /home                  ext3    noatime,defaults        1 2
reboot或者重新mount生效
二、Tcp优化
在/etc/sysctl.conf里加入
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 3
net.ipv4.tcp_syncookies = 1 #启用syncookies
        net.ipv4.tcp_max_syn_backlog = 8192 #定义backlog队列容纳的最大半连接数
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
老实说,对于sysctl.conf究竟能不能用起来还真不知道,因为我是没用起来,虽然内核里面是支持的 = =b
三、虚拟内存优化
/etc/sysctl.conf
        vm.lower_zone_protection = 100
四、I/O调度器
在grub.conf的相应启动选项里加入elevator=deadline,如:
kernel /vmlinuz-2.6.6 ro root=/dev/sda6 elevator=deadline
这里用了Deadline的I/O调度器,它比系统默认的AnticipatoryI/O调度器更为小巧,在数据吞吐量非常大的数据库系统中表现得更有优势。
五、内核源代码参数修改
修改/usr/src/linux/include/linux/posix_types.h
#define __FD_SETSIZE 1024 � 65536 
设置fd_set支持的最大数量
 
修改/usr/src/linux/include/linux/fs.h
#define INR_OPEN 1024 � 65536
#define NR_FILE 8192 � 65536
#define NR_RESERVED_FILES 10 � 128
设置最大打开文件数量(TCP连接数量)

修改/usr/src/linux/include/net/tcp.h
#define TCP_TIMEWAIT_LEN (60*HZ) � 1*HZ
#define TCP_SYNACK_RETRIES  5 � 3 
设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上
也是减少重试时间

make menuconfig中,去掉没用的选项,打开以下选项的开关:
High Memory Support (支持4GB以上内存)
Symmetric multi-processing support (支持多CPU)
TCP syncookie support (可以防DOS)
设置文件打开数等的其他方法(好处就是可以不重新编译内核)
在 /etc/init.d/sshd里加入(统一加在. /etc/rc.d/init.d/functions行后面)
ulimit -n 65535 >;/dev/null 2>;&1

ulimit -u 16384 >;/dev/null 2>;&1

重起sshd:nohup /etc/init.d/sshd restart &
BTW:其实limits.conf不好,因为他需要root su - user遗传给普通用户
如果直接远程登陆是没效果的
六、apache
1、安装:采用worker线程工作模式
./configure --prefix=/prefix

--enable-mods-shared=all

--enable-deflate

--with-mpm=worker
chmod +s /prefix/bin/httpd #允许普通用户也可以启动apache
2、配置:httpd.conf
Timeout 60

KeepAlive On

MaxKeepAliveRequests 150

KeepAliveTimeout   5



StartServers         3

MaxClients         3200   #支持3200个客户端哦

ServerLimit        32

MinSpareThreads     50

MaxSpareThreads     250

ThreadLimit   200

ThreadsPerChild     100

MaxRequestsPerChild 0



#上面的几个参数对机器要求比较高,如果是比较差的机器,每台机1000个连接最多了,你可能要重新设置参数,我的机器是DELL 2850



UseCanonicalName Off

HostnameLookups Off

ServerSignature Off



wolfop 回复于:2004-12-10 16:28:23

用来好多激进的方法啊,apache2的work方式现在稳定了吗?

killua 回复于:2004-12-11 13:08:44

引用:原帖由 "wolfop"]用来好多激进的方法啊,apache2的work方式现在稳定了吗?
发表:


我是在前两个月把apache2的工作模式换成worker方式的,都没有问题哦
而且经过我这样升级后,性能提升25%左右,真的,我测试过的

帖子上有个东东漏掉了,要apache支持3200个客户端,默认最大支持1024(64*16)个客户端,所以必须修改apache的源代码树下的server/mpm/worker/worker.c
把 #define DEFAULT_THREAD_LIMIT 64  -->; 128 #每个子进程中包含的线程数
   #define DEFAULT_SERVER_LIMIT 16  -->;  32  #最大的子进程总数

注意,不要把这两个值设得太高,超过系统的处理能力,那就事与愿违了
现在我的机子能承受每天350W的访问量,高峰期的load最多到2左右

Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild值决定的,应该大于等于MaxClients

大家可以根据自己的实际情况调试一下的。祝大家愉快。  



原文链接:http://bbs.chinaunix.net/viewthread.php?tid=464181
转载请注明作者名及原文出处
分享到:
评论

相关推荐

    IIS优化 为Web服务器减负

    ### IIS优化技巧:为Web服务器减负 在IT领域,特别是对于那些依赖于IIS(Internet Information Services)作为Web服务平台的企业来说,IIS的优化是确保网站性能、安全性和稳定性的重要步骤。本文将深入探讨如何通过...

    web服务器部分服务器优化参数解析

    web服务器部分服务器优化参数解析

    WEB服务器的优化方法.doc

    Web服务器的优化是一个复杂而关键的任务,涉及到网络...必须深入理解服务器工作原理,针对性地实施优化措施,以提高整体Web系统的性能。这涉及到网络配置、中断处理、并发管理等多个层面,需要全面考虑以达到最佳效果。

    web性能优化(服务器优化).pdf

    根据提供的文件内容,我们可以从中提取有关web性能优化(服务器优化)的知识点。文件内容虽然有部分OCR扫描错误和不连贯,但我们可以识别出关键概念和组件,并将它们串联成一篇详尽的web服务器优化知识介绍。 首先...

    web性能优化(服务器优化).doc

    ### Web性能优化(服务器优化)知识点详解 #### 一、提高服务器并发处理能力 服务器并发处理能力直接影响到网站能够承受的访问量。为了提高这一能力,通常需要关注以下几个方面: - **多执行流体系设计**:操作...

    stm32搭建web服务器

    在本文中,我们将探讨如何利用STM32F407微控制器和LWIP(Lightweight IP)库来搭建一个简单的Web服务器,并通过LAN9303以太网控制器连接网络。 首先,LWIP是一个开源、轻量级的TCP/IP协议栈,适用于资源有限的...

    linux下c语言实现多线程web服务器

    本项目是针对操作系统课程设计的一个多线程Web服务器,它利用C语言实现了服务器的基本功能,并且引入了线程池的设计思想,以优化性能和资源管理。下面我们将深入探讨这个项目中的关键知识点。 1. **多线程技术**:...

    C-Web-Server源码 经典的C语言web服务器

    6. **性能优化**:对于高性能Web服务器,内存管理、缓冲池、连接复用等都是提升性能的关键。C-Web-Server可能包含这些优化措施,以提高服务器的吞吐量和响应速度。 通过研究C-Web-Server的源码,我们可以了解到一个...

    多线程Web服务器的设计与实现

    7. **性能优化**:除了基本功能外,还会涉及到服务器性能的优化,如线程池的使用,减少线程创建和销毁的开销;使用非阻塞I/O(NIO)提高并发能力;以及利用缓存技术减少磁盘I/O。 8. **实验收获**:完成这个实验后...

    安卓版本web服务器 almp_v7.0ALMP

    常见的Web服务器如Apache、Nginx等,但almp_v7.0ALMP是针对移动设备优化的版本,可以在Android系统上运行。 该服务器支持多种脚本语言,包括PHP和ASP。PHP是一种广泛使用的开源服务器端脚本语言,主要用于网页开发...

    Linux Web服务器配置

    在IT领域,Linux Web服务器配置是一项至关重要的技能,它涉及到如何在Linux操作系统上搭建和管理网络服务,以提供网页内容和服务。Linux因其开源、稳定和高效的特点,成为了许多企业和个人首选的Web服务器平台。以下...

    五分钟搭建Web服务器和论坛

    搭建Web服务器和论坛是互联网应用开发的基础步骤,对于新手来说,快速上手并理解这个过程至关重要。本教程将详述如何在五分钟内高效地完成这一任务。以下是你需要知道的关键知识点: 1. **Web服务器**: Web服务器是...

    嵌入式Web服务器的分析与研究

    - **瘦Web服务器模型**:这是一种优化资源利用的模型,适合内存有限的系统,提供基本的Web服务功能。 3. **实现技术** - 文章提到的实现形式可能包括自定义的服务器内核优化、轻量级HTTP协议解析以及高效的内存...

    C#web服务器.zip

    本项目“C# Web服务器”是一个针对初学者的示例,它可以帮助你理解如何利用C#来构建一个简单的Web服务器。这个压缩包包含了一个名为"SimpleWebServer-src"的源代码文件夹,里面应该是实现Web服务器功能的C#代码。 *...

    Web服务器C++实现

    10. **性能优化**:为了提高服务器性能,可以采用预读、缓存、异步I/O、连接池等技术。此外,还可以考虑使用非阻塞I/O或多路复用技术,如select、poll或epoll。 在项目"WebServer_src"中,你可以找到实现这些功能的...

    WEB服务器漏洞扫描

    【WEB服务器漏洞扫描】是一种针对网络服务器安全性进行检查的重要手段,它主要目的是发现并修复可能导致数据泄露、系统被攻击或恶意软件感染的弱点。在信息化社会中,Web服务器作为互联网服务的核心,承载着大量敏感...

    java语言写的web服务器

    虽然这是一个简单的Web服务器,但实际部署时可能需要考虑端口设置、日志记录、安全性(如HTTPS支持)和性能优化等方面。 9. **测试与调试**: 对Web服务器进行单元测试和集成测试是必要的,以确保其正确性和稳定...

    c#做的WEB服务器,很不错.大家可以参考

    C#是一种广泛应用于开发Web应用程序的强大编程语言,尤其在构建Web服务器方面表现出色。本项目提供的"C#做的WEB服务器"示例,展示了如何利用C#实现一个基础的HTTP服务器,对于初学者和开发者来说,这是一个很好的...

    appweb 嵌入式的web服务器

    EJScript是AppWeb内置的脚本语言,类似于JavaScript,但针对嵌入式环境进行了优化。EJScript允许开发者在服务器端编写动态脚本来处理HTTP请求,生成动态内容。它支持基本的控制结构、函数、类和对象,使得开发者能够...

    C#基于TCP写的简单WEB服务器

    在IT行业中,网络编程是不可或缺的一部分,而Web服务器则是网络应用的核心组件。本文将深入探讨一个基于C#语言实现的简单TCP Web服务器,标题为"C#基于TCP写的简单WEB服务器"。这个项目主要展示了如何利用C#的网络...

Global site tag (gtag.js) - Google Analytics