您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Linux 性能优化详述
Linux性能优化详述一、前言本文档将在以下几个方面来阐述如何针Linux进行性能优化。1)LinuxProc文件系统,通过Proc文件系统进行调整,达到性能优化的目的。2)Linux性能诊断工具,介绍如何使用Linux自带的诊断工具进行性能诊断。二、/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该文件表示如果发生“内核严重错误(kernelpanic)”,则内核在重新引导之前等待的时间(以秒为单位)。零(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该文件用于控制内核信号量,信号量是SystemVIPC用于进程间通讯的方法。建议设置:25032000100128。第一列,表示每个信号集中的最大信号量数目。第二列,表示系统范围内的最大信号量总数目。第三列,表示每个信号发生时的最大系统操作数目。第四列,表示系统范围内的最大信号集总数目。所以,(第一列)*(第四列)=(第二列)以上设置,可以通过执行ipcs-l来验证。三、/proc/sys/vm/优化1)/proc/sys/vm/block_dump该文件表示是否打开BlockDebug模式,用于记录所有的读写及DirtyBlock写回动作。缺省设置:0,禁用BlockDebug模式。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和inodecache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inodecache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inodecache;增加该值超过100,将导致内核倾向于回收directory和inodecache。缺省设置:100。7)/proc/sys/vm/min_free_kbytes该文件表示强制LinuxVM最低保留多少空闲内存(Kbytes)。缺省设置:724(512M物理内存)。8)/proc/sys/vm/nr_pdflush_threads该文件表示当前正在运行的pdflush进程数量,在I/O负载高的情况下,内核会自动增加更多的pdflush进程。缺省设置:2(只读)。9)/proc/sys/vm/overcommit_memory该文件指定了内核针对内存分配的策略,其值可以是0、1、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,SystemVIPC。0,使用最新32位mmap()系统调用。1,使用2.4内核提供的系统调用。缺省设置:0。14)nr_hugepages该文件表示系统保留的hugetlb页数。15)hugetlb_shm_group该文件表示允许使用hugetlb页创建SystemVIPC共享内存段的系统组ID。四、/proc/sys/fs/优化1)/proc/sys/fs/file-max该文件指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开文件数已经达到了最大值,从而他们不能打开更多文件,则可能需要增加该值。缺省设置:4096。建议设置:65536。2)/proc/sys/fs/file-nr该文件与file-max相关,它有三个值:已分配文件句柄的数目已使用文件句柄的数目文件句柄的最大数目该文件是只读的,仅用于显示信息。五、/proc/sys/net/core/优化该目录下的配置文件主要用来控制内核和网络层之间的交互行为。1)/proc/sys/net/core/message_burst写新的警告消息所需的时间(以1/10秒为单位);在这个时间内系统接收到的其它警告消息会被丢弃。这用于防止某些企图用消息“淹没”系统的人所使用的拒绝服务(DenialofService)攻击。缺省设置: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。六、/proc/sys/net/ipv4/优化1)/proc/sys/net/ipv4/ip_forward该文件表示是否打开IP转发。0,禁止1,转发缺省设置:02)/proc/sys/net/ipv4/ip_default_ttl该文件表示一个数据报的生存周期(TimeToLive),即最多经过多少路由器。缺省设置: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(MaximumSegmentSize)大小,取决于第一跳的路由器MTU。缺省设置:256(bytes)。6.1IPFragmentation1)/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.2INETPeerStorage1)/proc/sys/net/ipv4/inet_peer_thresholdINET对端存储器某个合适值,当超过该阀值条目将被丢弃。该阀值同样决定生存时间以及废物收集通过的时间间隔。条目越多,存活期越低,GC间隔越短。缺省设置:65664。2)/proc/sys/net/ipv4/inet_peer_minttl条目的最低存活期。在重组端必须要有足够的碎片(fragment)存活期。这个最低存活期必须保证缓冲池容积是否少于inet_peer_threshold。该值以jiffies为单位测量。缺省设置:120。3)/proc/sys/net/ipv4/inet_peer_maxttl条目的最大存活期。在此期限到达之后,如果缓冲池没有耗尽压力的话(例如:缓冲池中的条目数目非常少),不使用的条目将会超时。该值以j
本文标题:Linux 性能优化详述
链接地址:https://www.777doc.com/doc-3612868 .html