Linux系统调优
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统调优相关的知识,希望对你有一定的参考价值。
- Linux核心参数都是放置在/proc下面;系统的参数都是放置在/proc/sys
- swap最好放置在运行最快的硬盘上面,但是swap并能取代ram,因为并有I/O上面的损耗,所以优先考虑检验内存没有泄露以及增加内存提高性能;另外swap退而求其次最好能够在一个单独的分区上面,或者是拥有多个swap分区,这样可以让linux系统能够多线程并行写到硬盘上面;swap配置大小应该是内存的两倍,而且如果内存增大了,应该手动调整交换区的大小;
- 参数调优一定是要一个一个的来看效果如何;不要一次批量进行调整;对于系统参数的修改,可以直接在vi对应的参数存放文件进行修改,也可以直接通过sysctl -w [parameter] = value来进行设置,直接生效;还可以通过sysctl [parameter]进行查看;注意parameter需要添加诸如"vm."之类的目录层级前缀,即它在/proc/sys下面的的目录;比如/proc/sys/net/core下面的busy_poll,如果想要查看就是:sysctl net.core.busy_poll;
- dirty_backgroud_radio参数用于调整合适内存中写数据flush到硬盘中,Linux的系统的写入硬盘操作都不是直接操作硬盘,而是放置到内存的区域内,等到了一定大小再进行写入(这也是ext3的优势,拥有日志功能,即使突然crash,可以根据日志来进行保证数据一致性),这个参数就是判断,当pdflush进程(daemon守护进程)所占用的内存量达到一定程度的时候,将会把数据写入到硬盘中(外存);还有一个参数是dirty_radio,当第一道屏障是background,当进程空闲的时候进行如此操作,第二道屏障就是dirty_radio,当写入量井喷,background方式已经无法及时进行处理,内存占用量很大(高于dirty_background_radio),这个时候就需要对I/O进行阻塞,保证当前的dirty page完全写入到内存中,防止内存过大;pdflush进程的作用其实是为了避免频繁写硬盘,比如你的硬盘写入量很大,避免频繁操作,就需要将这个值定的比较高,默认是10(10%),那么可能就需要调整到20%;
- 说道pdflush(Page dirty flush)其实还有另外一个监控点;就是周期性将数据写入到硬盘中,避免dirty page长期占据内存,dirty_expire_centisecs参数进行控制;针对pdflush的参数都是放置在/proc/sys/vm下面;
- ext2和ext3的核心区别在于后者提供了日志机制;ext4是ext3的升级,但是有很多性能的提升,ext4文件系统最大(1EB~10(6)B以及文件最大(16TB)都比前者ext3(文件系统16TB,文件2TB)大出很多;ext4子目录数量不再有限制(ext3限制为32000个);还有一点就是ext4允许关闭日志模式;
- Linux I/O elevator是Linux的硬盘系统处理机制,对于请求处理好像升降机(电梯)一样,对于要处理的数据放到电梯里面,下行入库(存放到硬盘/硬盘缓存);
- 在安装之处,硬盘的系统的安装就要考虑一个问题:这个服务器的功能是什么;只有回答了这个问题,后面的策略调优才能依据此来做;比如文件服务器,打印服务器,都是需要通过I/O来读取文件并传递到客户端,此时I/O十分重要,再比如数据库,目标是查询和获取/设置数据,除了要有充足的内存外,还需要从硬盘中获取大量的数据以及向硬盘存入大量的数据;对于邮件服务器,网络可能会更加重要一些;对于Web服务器,硬盘的读写可能就不是太重要,内存以及网络更加重要;
以上是关于Linux系统调优的主要内容,如果未能解决你的问题,请参考以下文章