Linux内存管理-内核的shmall和shmmax参数(性能调优)(转)

内核的shmall和shmmax参数html

SHMMAX=配置了最大的内存segment的大小:这个设置的比SGA_MAX_SIZE大比较好。node

SHMMIN=最小的内存segment的大小linux

SHMMNI=整个系统的内存segment的总个数web

SHMSEG=每一个进程可使用的内存segment的最大个数api

配置信号灯( semphore )的参数:缓存

SEMMSL=每一个semphore set里面的semphore数量:这个设置大于你的process的个数吧,不然你不得不分多个semphore set,好像有process+n之说,我忘了n是几了。安全

SEMMNI=整个系统的semphore set总数性能优化

SEMMNS=整个系统的semphore总数服务器

shmall是所有容许使用的共享内存大小,shmmax是单个段容许使用的大小。这两个能够设置为内存的90%。例如16G内存,16*1024*1024*1024*90%=15461882265,shmall的大小为 15461882265/4k(getconf PAGESIZE可获得)=3774873。cookie

修改/etc/sysctl.conf

kernel.shmmax=15461882265

kernel.shmall=3774873

kernel.msgmax=65535

kernel.msgmnb=65535

执行sudo sysctl -p

可使用ipcs -l看结果。ipcs -u能够看到实际使用的状况

Linux内存管理

1、前言

本文档针对OOP8生产环境,具体优化策略须要根据实际状况进行调整;本文档将在如下几个方面来阐述如何针对RedHat Enterprise Linux进行性能优化。

1) Linux Proc文件系统,经过对Proc文件系统进行调整,达到性能优化的目的。

2) Linux性能诊断工具,介绍如何使用Linux自带的诊断工具进行性能诊断。

加粗斜体表示能够直接运行的命令。

下划线表示文件的内容。

2、/proc/sys/kernel/优化

1)/proc/sys/kernel/ctrl-alt-del

该文件有一个二进制值,该值控制系统在接收到ctrl+alt+delete按键组合时如何反应。这两个值分别是:

零(0)值,表示捕获ctrl+alt+delete,并将其送至 init 程序;这将容许系统能够安全地关闭和重启,就好象输入shutdown命令同样。

壹(1)值,表示不捕获ctrl+alt+delete,将执行非正常的关闭,就好象直接关闭电源同样。

缺省设置:0

建议设置:1,防止意外按下ctrl+alt+delete致使系统非正常重启。

2)proc/sys/kernel/msgmax

该文件指定了从一个进程发送到另外一个进程的消息的最大长度(bytes)。进程间的消息传递是在内核的内存中进行的,不会交换到磁盘上,因此若是增长该值,则将增长操做系统所使用的内存数量。

缺省设置:8192

3)/proc/sys/kernel/msgmnb

该文件指定一个消息队列的最大长度(bytes)。

缺省设置:16384

4)/proc/sys/kernel/msgmni

该文件指定消息队列标识的最大数目,即系统范围内最大多少个消息队列。

缺省设置:16

5)/proc/sys/kernel/panic

该文件表示若是发生“内核严重错误(kernel panic)”,则内核在从新引导以前等待的时间(以秒为单位)。

零(0)秒,表示在发生内核严重错误时将禁止自动从新引导。

缺省设置:0

6)proc/sys/kernel/shmall

该文件表示在任何给定时刻,系统上可使用的共享内存的总量(bytes)。

缺省设置:2097152

7)/proc/sys/kernel/shmmax

该文件表示内核所容许的最大共享内存段的大小(bytes)。

缺省设置:33554432

建议设置:物理内存 * 50%

实际可用最大共享内存段大小=shmmax * 98%,其中大约2%用于共享内存结构。

能够经过设置shmmax,而后执行ipcs -l来验证。

8)/proc/sys/kernel/shmmni

该文件表示用于整个系统的共享内存段的最大数目(个)。

缺省设置:4096

9)/proc/sys/kernel/threads-max

该文件表示内核所能使用的线程的最大数目。

缺省设置:2048

10)/proc/sys/kernel/sem

该文件用于控制内核信号量,信号量是System VIPC用于进程间通信的方法。

建议设置:250 32000 100 128

第一列,表示每一个信号集中的最大信号量数目。

第二列,表示系统范围内的最大信号量总数目。

第三列,表示每一个信号发生时的最大系统操做数目。

第四列,表示系统范围内的最大信号集总数目。

因此,(第一列)*(第四列)=(第二列)

以上设置,能够经过执行ipcs -l来验证。

3、/proc/sys/vm/优化

1)/proc/sys/vm/block_dump

该文件表示是否打开Block Debug模式,用于记录全部的读写及Dirty Block写回动做。

缺省设置:0,禁用Block Debug模式

2)/proc/sys/vm/dirty_background_ratio

该文件表示脏数据到达系统总体内存的百分比,此时触发pdflush进程把脏数据写回磁盘。

缺省设置:10

3)/proc/sys/vm/dirty_expire_centisecs

该文件表示若是脏数据在内存中驻留时间超过该值,pdflush进程在下一次将把这些数据写回磁盘。

缺省设置:3000(1/100秒)

4)/proc/sys/vm/dirty_ratio

该文件表示若是进程产生的脏数据到达系统总体内存的百分比,此时进程自行把脏数据写回磁盘。

缺省设置:40

5)/proc/sys/vm/dirty_writeback_centisecs

该文件表示pdflush进程周期性间隔多久把脏数据写回磁盘。

缺省设置:500(1/100秒)

6)/proc/sys/vm/vfs_cache_pressure

该文件表示内核回收用于directory和inode cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;下降该值低于100,将致使内核倾向于保留directory和inode cache;增长该值超过100,将致使内核倾向于回收directory和inode cache。

缺省设置:100

7)/proc/sys/vm/min_free_kbytes

该文件表示强制Linux VM最低保留多少空闲内存(Kbytes)。

缺省设置:724(512M物理内存)

8)/proc/sys/vm/nr_pdflush_threads

该文件表示当前正在运行的pdflush进程数量,在I/O负载高的状况下,内核会自动增长更多的pdflush进程。

缺省设置:2(只读)

9)/proc/sys/vm/overcommit_memory

该文件指定了内核针对内存分配的策略,其值能够是0、一、2。

0,表示内核将检查是否有足够的可用内存供应用进程使用;若是有足够的可用内存,内存申请容许;不然,内存申请失败,并把错误返回给应用进程。

1,表示内核容许分配全部的物理内存,而无论当前的内存状态如何。

2,表示内核容许分配超过全部物理内存和交换空间总和的内存(参照overcommit_ratio)。

缺省设置:0

10)/proc/sys/vm/overcommit_ratio

该文件表示,若是overcommit_memory=2,能够过载内存的百分比,经过如下公式来计算系统总体可用内存。

系统可分配内存=交换空间+物理内存*overcommit_ratio/100

缺省设置:50(%)

11)/proc/sys/vm/page-cluster

该文件表示在写一次到swap区的时候写入的页面数量,0表示1页,1表示2页,2表示4页。

缺省设置:3(2的3次方,8页)

12)/proc/sys/vm/swapiness

该文件表示系统进行交换行为的程度,数值(0-100)越高,越可能发生磁盘交换。

缺省设置:60

13)legacy_va_layout

该文件表示是否使用最新的32位共享内存mmap()系统调用,Linux支持的共享内存分配方式包括mmap(),Posix,System VIPC。

0,使用最新32位mmap()系统调用。

1,使用2.4内核提供的系统调用。

缺省设置:0

14)nr_hugepages

该文件表示系统保留的hugetlb页数。

15)hugetlb_shm_group

该文件表示容许使用hugetlb页建立System VIPC共享内存段的系统组ID。

4、/proc/sys/fs/优化

1)/proc/sys/fs/file-max

该文件指定了能够分配的文件句柄的最大数目。若是用户获得的错误消息声明因为打开

文件数已经达到了最大值,从而他们不能打开更多文件,则可能须要增长该值。

缺省设置:4096

建议设置:65536

2)/proc/sys/fs/file-nr

该文件与 file-max 相关,它有三个值:

已分配文件句柄的数目

已使用文件句柄的数目

文件句柄的最大数目

该文件是只读的,仅用于显示信息。

5、/proc/sys/net/core/优化

该目录下的配置文件主要用来控制内核和网络层之间的交互行为。

1)/proc/sys/net/core/message_burst

写新的警告消息所需的时间(以 1/10 秒为单位);在这个时间内系统接收到的其它警告消息会被丢弃。这用于防止某些企图用消息“淹没”系统的人所使用的拒绝服务(Denial of Service)攻击。

缺省设置:50(5秒)

2)/proc/sys/net/core/message_cost

该文件表示写每一个警告消息相关的成本值。该值越大,越有可能忽略警告消息。

缺省设置:5

3)/proc/sys/net/core/netdev_max_backlog

该文件表示在每一个网络接口接收数据包的速率比内核处理这些包的速率快时,容许送到队列的数据包的最大数目。

缺省设置:300

4)/proc/sys/net/core/optmem_max

该文件表示每一个套接字所容许的最大缓冲区的大小。

缺省设置:10240

5)/proc/sys/net/core/rmem_default

该文件指定了接收套接字缓冲区大小的缺省值(以字节为单位)。

缺省设置:110592

6)/proc/sys/net/core/rmem_max

该文件指定了接收套接字缓冲区大小的最大值(以字节为单位)。

缺省设置:131071

7)/proc/sys/net/core/wmem_default

该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。

缺省设置:110592

8)/proc/sys/net/core/wmem_max

该文件指定了发送套接字缓冲区大小的最大值(以字节为单位)。

缺省设置:131071

6、/proc/sys/net/ipv4/优化

1)/proc/sys/net/ipv4/ip_forward

该文件表示是否打开IP转发。

0,禁止

1,转发

缺省设置:0

2)/proc/sys/net/ipv4/ip_default_ttl

该文件表示一个数据报的生存周期(Time To Live),即最多通过多少路由器。

缺省设置:64

增长该值会下降系统性能。

3)/proc/sys/net/ipv4/ip_no_pmtu_disc

该文件表示在全局范围内关闭路径MTU探测功能。

缺省设置:0

4)/proc/sys/net/ipv4/route/min_pmtu

该文件表示最小路径MTU的大小。

缺省设置:552

5)/proc/sys/net/ipv4/route/mtu_expires

该文件表示PMTU信息缓存多长时间(秒)。

缺省设置:600(秒)

6) /proc/sys/net/ipv4/route/min_adv_mss

该文件表示最小的MSS(Maximum Segment Size)大小,取决于第一跳的路由器MTU。

缺省设置:256(bytes)

6.1 IP Fragmentation

1) /proc/sys/net/ipv4/ipfrag_low_thresh/proc/sys/net/ipv4/ipfrag_low_thresh

两个文件分别表示用于重组IP分段的内存分配最低值和最高值,一旦达到最高内存分配值,其它分段将被丢弃,直到达到最低内存分配值。

缺省设置:196608(ipfrag_low_thresh)

262144(ipfrag_high_thresh)

2) /proc/sys/net/ipv4/ipfrag_time

该文件表示一个IP分段在内存中保留多少秒。

缺省设置:30(秒)

6.2 INET Peer Storage

1) /proc/sys/net/ipv4/inet_peer_threshold

INET对端存储器某个合适值,当超过该阀值条目将被丢弃。该阀值一样决定生存时间以及废物收集经过的时间间隔。条目越多,存活期越低,GC 间隔越短。

缺省设置:65664

2) /proc/sys/net/ipv4/inet_peer_minttl

条目的最低存活期。在重组端必需要有足够的碎片(fragment)存活期。这个最低存活期必须保证缓冲池容积是否少于 inet_peer_threshold。该值以 jiffies为

单位测量。

缺省设置:120

3) /proc/sys/net/ipv4/inet_peer_maxttl

条目的最大存活期。在此期限到达以后,若是缓冲池没有耗尽压力的话(例如:缓冲池中的条目数目很是少),不使用的条目将会超时。该值以 jiffies为单位测量。

缺省设置:600

4) /proc/sys/net/ipv4/inet_peer_gc_mintime

废物收集(GC)经过的最短间隔。这个间隔会影响到缓冲池中内存的高压力。 该值以 jiffies为单位测量。

缺省设置:10

5) /proc/sys/net/ipv4/inet_peer_gc_maxtime

废物收集(GC)经过的最大间隔,这个间隔会影响到缓冲池中内存的低压力。 该值以 jiffies为单位测量。

缺省设置:120

6.3 TCP Variables

1) /proc/sys/net/ipv4/tcp_syn_retries

该文件表示本机向外发起TCP SYN链接超时重传的次数,不该该高于255;该值仅仅针对外出的链接,对于进来的链接由tcp_retries1控制。

缺省设置:5

2) /proc/sys/net/ipv4/tcp_keepalive_probes

该文件表示丢弃TCP链接前,进行最大TCP保持链接侦测的次数。保持链接仅在SO_KEEPALIVE套接字选项被打开时才被发送。

缺省设置:9(次)

3) /proc/sys/net/ipv4/tcp_keepalive_time

该文件表示从再也不传送数据到向链接上发送保持链接信号之间所需的秒数。

缺省设置:7200(2小时)

4) /proc/sys/net/ipv4/tcp_keepalive_intvl

该文件表示发送TCP探测的频率,乘以tcp_keepalive_probes表示断开没有相应的TCP链接的时间。

缺省设置:75(秒)

5) /proc/sys/net/ipv4/tcp_retries1

该文件表示放弃回应一个TCP链接请求前进行重传的次数。

缺省设置:3

6) /proc/sys/net/ipv4/tcp_retries2

该文件表示放弃在已经创建通信状态下的一个TCP数据包前进行重传的次数。

缺省设置:15

7) /proc/sys/net/ipv4/tcp_orphan_retries

在近端丢弃TCP链接以前,要进行多少次重试。默认值是 7 个,至关于 50秒–16分钟,视 RTO 而定。若是您的系统是负载很大的web服务器,那么也许须要下降该值,这类 sockets 可能会耗费大量的资源。另外参考tcp_max_orphans。

8) /proc/sys/net/ipv4/tcp_fin_timeout

对于本端断开的socket链接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开链接或一直不结束链接或不可预料的进程死亡。默认值为 60 秒。过去在2.2版本的内核中是 180 秒。您能够设置该值,但须要注意,若是您的机器为负载很重的web服务器,您可能要冒内存被大量无效数据报填满的风险,FIN-WAIT-2 sockets 的危险性低于 FIN-WAIT-1,由于它们最多只吃 1.5K的内存,可是它们存在时间更长。另外参考 tcp_max_orphans。

缺省设置:60(秒)

9) /proc/sys/net/ipv4/tcp_max_tw_buckets

系统在同时所处理的最大timewait sockets 数目。若是超过此数的话,time-wait socket 会被当即砍除而且显示警告信息。之因此要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的下降这个限制,不过,若是

网络条件须要比默认值更多,则能够提升它(或许还要增长内存)。

缺省设置:180000

10) /proc/sys/net/ipv4/tcp_tw_recyle

打开快速 TIME-WAIT sockets 回收。除非获得技术专家的建议或要求,请不要随意修改这个值。

缺省设置:0

11) /proc/sys/net/ipv4/tcp_tw_reuse

该文件表示是否容许从新应用处于TIME-WAIT状态的socket用于新的TCP链接。

缺省设置:0

12) /proc/sys/net/ipv4/tcp_max_orphans

系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量,那么不属于任何进程的链接会被当即reset,并同时显示警告信息。之因此要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要依赖这个或是人为的下降这个限制。

缺省设置:8192

13) /proc/sys/net/ipv4/tcp_abort_on_overflow

当守护进程太忙而不能接受新的链接,就向对方发送reset消息,默认值是false。这意味着当溢出的缘由是由于一个偶然的猝发,那么链接将恢复状态。只有在你确信守护进程真的不能完成链接请求时才打开该选项,该选项会影响客户的使用。

缺省设置:0

14) /proc/sys/net/ipv4/tcp_syncookies

该文件表示是否打开TCP同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES项进行编译。 同步标签(syncookie)能够防止一个套接字在有过多试图链接到达时引发过载。

缺省设置:0

15) /proc/sys/net/ipv4/tcp_stdurg

使用 TCP urg pointer 字段中的主机请求解释功能。大部份的主机都使用老旧的BSD解释,所以若是您在 Linux 打开它,或会致使不能和它们正确沟通。

缺省设置:0

16) /proc/sys/net/ipv4/tcp_max_syn_backlog

对于那些依然还未得到客户端确认的链接请求,须要保存在队列中最大数目。对于超过 128Mb 内存的系统,默认值是 1024,低于 128Mb 的则为 128。若是服务器常常出现过载,能够尝试增长这个数字。警告!假如您将此值设为大于1024,最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE,以保持TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(若是tcp_adv_win_scale 128Mb 32768-610000)则系统将忽略全部发送给本身的ICMP ECHO请求或那些广播地址的请求。

缺省设置:1024

17) /proc/sys/net/ipv4/tcp_window_scaling

该文件表示设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip一般使用的窗口最大可达到 65535 字节,对于高速网络,该值可能过小,这时候若是启用了该功能,可使tcp/ip滑动窗口大小增大数个数量级,从而提升数据传输的能力。

缺省设置:1

18) /proc/sys/net/ipv4/tcp_sack

该文件表示是否启用有选择的应答(Selective Acknowledgment),这能够经过有选择地应答乱序接收到的报文来提升性能(这样可让发送者只发送丢失的报文段);(对于广域网通讯来讲)这个选项应该启用,可是这会增长对 CPU 的占用。

缺省设置:1

19) /proc/sys/net/ipv4/tcp_timestamps

该文件表示是否启用以一种比超时重发更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。

缺省设置:1

20) /proc/sys/net/ipv4/tcp_fack

该文件表示是否打开FACK拥塞避免和快速重传功能。

缺省设置:1

21) /proc/sys/net/ipv4/tcp_dsack

该文件表示是否容许TCP发送“两个彻底相同”的SACK。

缺省设置:1

22) /proc/sys/net/ipv4/tcp_ecn

该文件表示是否打开TCP的直接拥塞通告功能。

缺省设置:0

23) /proc/sys/net/ipv4/tcp_reordering

该文件表示TCP流中重排序的数据报最大数量。

缺省设置:3

24) /proc/sys/net/ipv4/tcp_retrans_collapse

该文件表示对于某些有bug的打印机是否提供针对其bug的兼容性。

缺省设置:1

25) /proc/sys/net/ipv4/tcp_wmem

该文件包含3个整数值,分别是:min,default,max

Min:为TCP socket预留用于发送缓冲的内存最小值。每一个TCP socket均可以使用它。

Default:为TCP socket预留用于发送缓冲的内存数量,默认状况下该值会影响其它协议使用的net.core.wmem中default的 值,通常要低于net.core.wmem中default的值。

Max:为TCP socket预留用于发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K。

缺省设置:4096 16384 131072

26) /proc/sys/net/ipv4/tcp_rmem

该文件包含3个整数值,分别是:min,default,max

Min:为TCP socket预留用于接收缓冲的内存数量,即便在内存出现紧张状况下TCP socket都至少会有这么多数量的内存用于接收缓冲。

Default:为TCP socket预留用于接收缓冲的内存数量,默认状况下该值影响其它协议使用的 net.core.wmem中default的值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的 默认值状况下,TCP 窗口大小为65535。

Max:为TCP socket预留用于接收缓冲的内存最大值。该值不会影响 net.core.wmem中max的值,今天选择参数 SO_SNDBUF则不受该值影响。

缺省设置:4096 87380 174760

27) /proc/sys/net/ipv4/tcp_mem

该文件包含3个整数值,分别是:low,pressure,high

Low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。

Pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。

High:容许全部tcp sockets用于排队缓冲数据报的页面量。

通常状况下这些值是在系统启动时根据系统内存数量计算获得的。

缺省设置:24576 32768 49152

28) /proc/sys/net/ipv4/tcp_app_win

该文件表示保留max(window/2^tcp_app_win, mss)数量的窗口因为应用缓冲。当为0时表示不须要缓冲。

缺省设置:31

29) /proc/sys/net/ipv4/tcp_adv_win_scale

该文件表示计算缓冲开销bytes/2^tcp_adv_win_scale(若是tcp_adv_win_scale >; 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(若是tcp_adv_win_scale <= 0)。

缺省设置:2

6.4 IP Variables

1) /proc/sys/net/ipv4/ip_local_port_range

该文件表示TCP/UDP协议打开的本地端口号。

缺省设置:1024 4999

建议设置:32768 61000

2) /proc/sys/net/ipv4/ip_nonlocal_bind

该文件表示是否容许进程邦定到非本地地址。

缺省设置:0

3) /proc/sys/net/ipv4/ip_dynaddr

该参数一般用于使用拨号链接的状况,可使系统动可以当即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址从新发出一个syn请求 包,开始新的tcp对话。在使用ip欺骗时,该参数能够当即改变假装地址为新的ip地址。该文件表示是否容许动态地址,若是该值非0,表示容许;若是该值 大于1,内核将经过log记录动态地址重写信息。

缺省设置:0

4) /proc/sys/net/ipv4/icmp_echo_ignore_all/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

该文件表示内核是否忽略全部的ICMP ECHO请求,或忽略广播和多播请求。

0, 响应请求

1, 忽略请求

缺省设置:0

建议设置:1

5) /proc/sys/net/ipv4/icmp_ratelimit

6) /proc/sys/net/ipv4/icmp_ratemask

7) /proc/sys/net/ipv4/icmp_ignore_bogus_error_reponses

某些路由器违背RFC1122标准,其对广播帧发送伪造的响应来应答。这种违背行为一般会被以告警的方式记录在系统日志中。若是该选项设置为True,内核不会记录这种警告信息。

缺省设置:0

8) /proc/sys/net/ipv4/igmp_max_memberships

该文件表示多播组中的最大成员数量。

缺省设置:20

6.5 Other Configuration

1) /proc/sys/net/ipv4/conf/*/accept_redirects

若是主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,可是该网关在收到你的ip包时发现该ip包必须通过另一个路由器,这时这个路由器就会给你发一个所谓的“重定向”icmp包,告诉将ip包转发到另一个路由器。参数值为布尔值,1表示接收这类重定向icmp 信息,0表示忽略。在充当路由器的linux主机上缺省值为0,在通常的linux主机上缺省值为1。建议将其改成0以消除安全性隐患。

2) /proc/sys/net/ipv4/*/accept_source_route

是否接受含有源路由信息的ip包。参数值为布尔值,1表示接受,0表示不接受。在充当网关的linux主机上缺省值为1,在通常的linux主机上缺省值为0。从安全性角度出发,建议关闭该功能。

3) /proc/sys/net/ipv4/*/secure_redirects

其实所谓的“安全重定向”就是只接受来自网关的“重定向”icmp包。该参数就是用来设置“安全重定向”功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值为启用。

4) /proc/sys/net/ipv4/*/proxy_arp

设置是否对网络上的arp包进行中继。参数值为布尔值,1表示中继,0表示忽略,缺省值为0。该参数一般只对充当路由器的linux主机有用。

7、性能优化策略

7.1 基本优化

1) 关闭后台守护进程

系统安装完后,系统会默认启动一些后台守护进程,有些进程并非必需的;所以,关闭这些进程能够节省一部分物理内存消耗。以root身份登陆系统,运行ntsysv,选中以下进程:

iptables

network

syslog

random

apmd

xinetd

vsftpd

crond

local

修改完后,从新启动系统。

如此,系统将仅仅启动选中的这些守护进程。

2) 减小终端链接数

系统默认启动6个终端,而实际上只需启动3个便可;以root身份登陆系统,运行vi /etc/inittab,修改为以下:

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

#4:2345:respawn:/sbin/mingetty tty4

#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6

如上所述,注释掉四、五、6终端。

7.2 网络优化

1) 优化系统套接字缓冲区

net.core.rmem_max=16777216

net.core.wmem_max=16777216

2) 优化TCP接收/发送缓冲区

net.ipv4.tcp_rmem=4096 87380 16777216

net.ipv4.tcp_wmem=4096 65536 16777216

3) 优化网络设备接收队列

net.core.netdev_max_backlog=3000

4) 关闭路由相关功能

net.ipv4.conf.lo.accept_source_route=0

net.ipv4.conf.all.accept_source_route=0

net.ipv4.conf.eth0.accept_source_route=0

net.ipv4.conf.default.accept_source_route=0

net.ipv4.conf.lo.accept_redirects=0

net.ipv4.conf.all.accept_redirects=0

net.ipv4.conf.eth0.accept_redirects=0

net.ipv4.conf.default.accept_redirects=0

net.ipv4.conf.lo.secure_redirects=0

net.ipv4.conf.all.secure_redirects=0

net.ipv4.conf.eth0.secure_redirects=0

net.ipv4.conf.default.secure_redirects=0

net.ipv4.conf.lo.send_redirects=0

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.eth0.send_redirects=0

net.ipv4.conf.default.send_redirects=0

5) 优化TCP协议栈

打开TCP SYN cookie选项,有助于保护服务器免受SyncFlood攻击。

net.ipv4.tcp_syncookies=1

打开TIME-WAIT套接字重用功能,对于存在大量链接的Web服务器很是有效。

net.ipv4.tcp_tw_recyle=1

net.ipv4.tcp_tw_reuse=1

减小处于FIN-WAIT-2链接状态的时间,使系统能够处理更多的链接。

net.ipv4.tcp_fin_timeout=30

减小TCP KeepAlive链接侦测的时间,使系统能够处理更多的链接。

net.ipv4.tcp_keepalive_time=1800

增长TCP SYN队列长度,使系统能够处理更多的并发链接。

net.ipv4.tcp_max_syn_backlog=8192

 

参考:

http://www.cnblogs.com/dkblog/archive/2011/09/06/2168721.html(以上内容转自此篇文章)

相关文章
相关标签/搜索