优化Linux 的内核参数来提高服务器并发处理能力PS:在服务器硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题.要提高Linux 系统下的负载能力,可以使用nginx 等原生并发处理能力就很强的web 服务器,如果使用Apache 的可以启用其Worker 模式,来提高其并发处理能力.除此之外,在考虑节省成本的情况下,可以修改Linux 的内核相关TCP 参数,来最大的提高服务器性能.当然,最基础的提高负载问题,还是升级服务器硬件了,这是…
提高Linux系统下的负载能力,可以使用nginx等原生并发处理能力就很强的web服务器 使用Apache的可以启用其Worker模式,来提高其并发处理能力 修改Linux的内核相关TCP参数,来最大的提高服务器性能 最基础的提高负载问题,还是升级服务器硬件 Linux系统下,TCP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口.当并发请求过多的时候,就会产生大量的TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源.这个时候我们可以优化TCP…
简介 提高服务器性能有很多方法,比如划分图片服务器,主从数据库服务器,和网站服务器在服务器.但是硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题.要提高Linux系统下的负载能力,可以使用nginx等原生并发处理能力就很强的web服务器,如果使用Apache的可以启用其Worker模式,来提高其并发处理能力.除此之外,在考虑节省成本的情况下,可以修改Linux的内核相关TCP参数,来最大的提高服务器性能.当然,最基础的提高负载问题,还是升级…
1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时候就会被pdflush刷新到磁盘: (1)数据存在的时间超过了dirty_expire_centisecs(默认30s)时间 (2)脏数据所占内存 /(MemFree + Cached - Mapped) > dirty_background_ratio.也就是说当脏数据所占用的内存占(MemFre…
Linux常用内核参数 TCP状态描述 CLOSED:无连接是活动的或正在进行的 LISTEN:服务器在等待进入呼叫 SYN-RECV:一个连接请求已经到达,等待确认 SYN-SENT:应用已经开始,打开一个连接 ESTABLISHED:已经建立的连接 FIN-WAIT1:主动断开一方,第一次发送完FIN FIN-WAIT2:主动断开一方,收到对端确认的ACK TIME-WAIT:主动断开一方,收到FIN-ACK CLOSE-WAIT:被动断开一方,收到对方FIN且发送完ACK后 LAST-AC…
http://blog.renhao.org/2010/07/setup-linux-kernel-tcp-settings/ /proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这些重要的参数 /etc/sysctl.conf这个重启也有效   提高服务器的负载能力,是一个永恒的话题.在一台服务器CPU和内存资源额定有限的情况下,最大的压榨服务器的性…
参数 描述 net.ipv4.ip_forward 接口间转发报文net.ipv4.tcp_tw_reuse 表示是否允许将处于 TIME-WAIT 状态的 socket (TIME-WAIT 的端口)用于新的 TCP 连接net.ipv4.tcp_tw_recycle 能够更快地回收 TIME-WAIT 套接字net.core.rmem_deafult 默认的TCP数据接收窗口大小(字节)net.core.rmem_max 最大的TCP数据接收窗口(字节)net.core.wmem_defau…
调整系统内核参数 内核优化:Linux系统(内核 + shell + 应用程序)       针对业务服务应用而进行的系统内核参数调整(主要是/etc/sysctl.conf文件) 1. vim /etc/sysctl.conf 2. sysctl -p 修改的参数生效 另:sysctl.conf下文件的默认参数在: /proc/sys/net/ipv4/tcp_fin_timeout [更多参考]:http://oldboy.blog.51cto.com/2561410/1184228附:禁止…
Linux 操作系统修改内核参数有3种方式: 修改 /etc/sysctl.conf 文件,加入配置选项,格式为 key = value ,修改保存后调用 sysctl -p 加载新配置使用 sysctl 命令临时修改,如: sysctl -w net.ipv4.tcp_mem="379008 505344 758016"直接修改 /proc/sys/ 目录中的文件,如: echo "379008 505344 758016" > /proc/sys/net/…
上篇线程/进程并发服务器中提到,提高服务器性能在IO层需要关注两个地方,一个是文件描述符处理,一个是线程调度. IO复用是什么?IO即Input/Output,在网络编程中,文件描述符就是一种IO操作. 为什么要IO复用? 1.网络编程中非常多函数是阻塞的,如connect,利用IO复用可以以非阻塞形式执行代码. 2.之前提到listen维护两个队列,完成握手的队列可能有多个就绪的描述符,IO复用可以批处理描述符. 3.有时候可能要同时处理TCP和UDP,同时监听多个端口,同时处理读写和连接等.…