1. Linux核心参数都是放置在/proc下面;系统的参数都是放置在/proc/sys
  2. swap最好放置在运行最快的硬盘上面,但是swap并能取代ram,因为并有I/O上面的损耗,所以优先考虑检验内存没有泄露以及增加内存提高性能;另外swap退而求其次最好能够在一个单独的分区上面,或者是拥有多个swap分区,这样可以让linux系统能够多线程并行写到硬盘上面;swap配置大小应该是内存的两倍,而且如果内存增大了,应该手动调整交换区的大小;
  3. 参数调优一定是要一个一个的来看效果如何;不要一次批量进行调整;对于系统参数的修改,可以直接在vi对应的参数存放文件进行修改,也可以直接通过sysctl -w [parameter] = value来进行设置,直接生效;还可以通过sysctl [parameter]进行查看;注意parameter需要添加诸如"vm."之类的目录层级前缀,即它在/proc/sys下面的的目录;比如/proc/sys/net/core下面的busy_poll,如果想要查看就是:sysctl net.core.busy_poll;
  4. 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%;
  5. 说道pdflush(Page dirty flush)其实还有另外一个监控点;就是周期性将数据写入到硬盘中,避免dirty page长期占据内存,dirty_expire_centisecs参数进行控制;针对pdflush的参数都是放置在/proc/sys/vm下面;
  6. ext2和ext3的核心区别在于后者提供了日志机制;ext4是ext3的升级,但是有很多性能的提升,ext4文件系统最大(1EB~10(6)B以及文件最大(16TB)都比前者ext3(文件系统16TB,文件2TB)大出很多;ext4子目录数量不再有限制(ext3限制为32000个);还有一点就是ext4允许关闭日志模式;
  7. Linux I/O elevator是Linux的硬盘系统处理机制,对于请求处理好像升降机(电梯)一样,对于要处理的数据放到电梯里面,下行入库(存放到硬盘/硬盘缓存);
  8. 在安装之处,硬盘的系统的安装就要考虑一个问题:这个服务器的功能是什么;只有回答了这个问题,后面的策略调优才能依据此来做;比如文件服务器,打印服务器,都是需要通过I/O来读取文件并传递到客户端,此时I/O十分重要,再比如数据库,目标是查询和获取/设置数据,除了要有充足的内存外,还需要从硬盘中获取大量的数据以及向硬盘存入大量的数据;对于邮件服务器,网络可能会更加重要一些;对于Web服务器,硬盘的读写可能就不是太重要,内存以及网络更加重要;
  9. 进程,是个执行实例,有内核提供资源来完成任务;

进程管理

  1. 进程的生命周期,进程是需要父进程进行创建的,通过调用fork函数,fork动词就是"分叉"之意(名词是叉子),此时子进程复制了父进程资源,包括内存地址;exec则开辟了自己的内存空间,共享内存毕竟会导致同时写发生异常;exit只是子进程释放大部分资源,但是无法全部释放,进入到了wait状态只有父进程得到通知后,对子进程进行处理的时候,才会完全释放子进程资源;处于zombie状态的进程是无法使用kill进行回收的,因为它已经被认为杀死了;只能通过杀死父进程来强制进行回收;但是如果父进程是init process,无法进行杀死,那么只能通过重启来进行zombie状态的子进程进行回收了;

  2. Thread是轻量级的进程,但是其实操作系统内核对于他们是一视同仁的;从性能角度来看,Thread是更加节省性能,因为它不需要复制资源,而是和父进程共享资源,但是开发难度却加大,因为需要考虑对于共享资源的加锁,序列化等机制;
  3. 进程的优先级和nice level,进程的优先级越高,越容易获得CPU的处理资源,处理时间更长;静态的优先级(static priority)不能改变,但是可以通过指定nice level来间接地动态(dynamic priority)提高进程的优先级;19 ~ -20,默认是0,nice level越小,优先级越高,-20是最紧急的进程;
  4. 环境切换(Context switch),需要中断一起来理解,环境,是指进程运行时候的数据;当中断发生的时候,就会发生环境切换,这是这些数据将会被保存到寄存器中;中断分为硬中断以及软终端,硬中断来自于设备,设备,网卡,这些中断是要求操作系统作出相应,优先级最高,软中断则是操作系统任务级别的中断,是可以被延迟的;
  5. Linux的CPU schedule机制,是会为每个进程分配时间片,并放入到active队列中,执行完毕后,会重新分配时间片(time slice),放入到expire队列中,当active队列的进程全部执行完毕后,expire队列变成了active队列,循环往复;

内存

  1. 内存有两个作用,一个Page Cache,用于映射硬盘文件,还有一个主要功能,就是映射物理内存,所有的这些功能都是通过Virutal Memory Manager来进行管理和实现的;
  2. 虚拟内存一个Page有4K,虚拟内存的管理是由buddySystem来进行管理,他知道如何来分配内存,怎么分配内存避免内存碎片,同时,如果内存不够了,还会调用清理程序,对于管理的内部进行清理;

文件系统

  1. 和内存类似,VFS(virtual File System)作为进程和文件系统接口,是的上层进程应用可以忽略底层文件系统的不同;
  2. Ext2系统通过inode-bitmap以及inodetable来管理文件;
  3. Ext3系统是Ext2的升级版本,旧有版本处理流程是:写入文件,首先修改文件的元数据(metadat,比如文件大小,属性等),然后在写入文件;但是如果修改完元数据之后,机器宕机了,造成了文件元数据和文件不一致情况,尽管可以通过fsck对文件系统进行一致处理,但是如果硬盘数据很多,很浪费时间;日志文件则是会记录操作过程,首先是记录日志,然后写数据(包括元数据),最后再把日志删掉;ext3主要是增加了日志功能,共有三种模式:日志模式,保证元数据(文件信息)以及数据(文件变化内容)都进行日志记录;对性能影响比较大;ordered,首先是写文件数据,文件写入成功的同时记录修改元数据日志,最后修改元数据;writeback,记录元数据的修改日志,但是没有立即对数据进行写会;日志问题并不是找回数据,而是维持数据的一致性问题;保证文件的元数据和数据是保持一致的;
  4. 在日志式文件系统中,由于详细纪录了每个细节,故当在某个过程中被中断时,系统可以根据这些记录直接回溯并重整被中断的部分,而不必花时间去检查其他的部分,故重整的工作速度相当快,几乎不需要花时间。
  5. 关于硬链接,删除原始文件其实不过是删掉inode上面的一个硬链接而已,所以如果一个文件地址(inode)上面有多个连接,删除任意一个都不会导致文件物理路径释放,只有当inode上面的硬连接数为0才会真是删除;软连接并不会作为inode的连接,他只是一个指令文件,执行该文件是导引到指定inode上面;所以原始文件连接删除后,硬链接文件仍然可用,但是软连接文件执行则会报错;

Linux系统调优的更多相关文章

  1. Linux系统调优1

    Linux在进行系统调优的时候,首先要考虑整个操作系统的结构,然后针对各个部分进行优化,下面展示一个Linux系统的各个组成部分: 有上图可以看出,我们可以调整的有应用程序,库文件,内核,驱动,还有硬 ...

  2. Linux系统调优——CPU(一)

    (1).系统调优思路 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对OS 各子系统达到一种平衡的定义.具体步骤如下: 1. 系统的运行状况:  CPU -> MEM  -& ...

  3. Linux系统调优相关工具

    一.系统调优概述 系统的运行状况: CPU -> MEM -> DISK*-> NETWORK -> 应用程序调优 分析是否有瓶颈(依据当前应用需求) 调优(把错误的调正确) ...

  4. linux系统调优工具

    系统调优思路 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对 OS 各子系统达到一种平衡的定义.具体步骤如下: 1. 系统的运行状况: CPU -> MEM -> D ...

  5. Linux系统调优——内核相关参数(五)

    修改内核参数有3种办法:一种临时修改,两种永久修改. 临时修改是使用sysctl [选项] [参数名=值]命令:永久修改是修改/etc/sysctl.conf文件或修改/proc/sys/目录下的对应 ...

  6. Linux系统调优——网络(四)

    (1).查看网络(Network)运行状态相关工具 1)nload监控总体带宽使用情况 nload需要自己安装,而且在安装前需要安装epel-release [root@youxi1 ~]# yum ...

  7. Linux系统调优——磁盘I/O(三)

    (1).查看I/O运行状态相关工具 1)查看文件系统块大小 对于ext4文件系统,查看文件系统块大小 [root@CentOS6 ~]# tune2fs -l /dev/sda1 | grep siz ...

  8. 1.linux系统调优

    首先来说调优是一门黑色艺术,使用来满足人的感知,通过人的感觉来进行配置,达到让人感觉操作系统速度很块的感觉. 操作系统拥有四个瓶颈:cpu,内存,网络,磁盘.调优主要是对上述四个子系统进行配置优化,其 ...

  9. Linux系统调优及安全设置

    1.关闭SELinux #临时关闭 setenforce 0 #永久关闭 vim /etc/selinux/config SELINUX=disabled 2.设定运行级别为3 #设定运行级别 vim ...

随机推荐

  1. mac上SVN项目管理,提示被锁定的解决方法

    问题 mac上SVN项目管理,提示被锁定.不能commit.也不能update.提示 clean the working copy and then. .. 解决方法 watermark/2/text ...

  2. 由 Windows 向 Linux 迁移字体 和 Linux 等宽字体

    1. From Windows Windows下字体库的位置为C:\Windows\fonts,这里面包含所有windows下可用的字体.2. To Linux linux的字体库是 /usr/sha ...

  3. log4j中存在日志无法打印问题解决

    我在项目中配置双数据中心,原来类包名称前最都是一致的,后来由于项目的需要根据数据来源命名不同的类包名称,这个导致一个问题,sql语句运行无法正常打印出来,提示以下内容: log4j:WARN No a ...

  4. Activity 的生命周期与加载模式

    当Activity 处于Android 应用中运行时,它的活动状态由 Android 以 Activity 栈的形式管理.当前活动的Activity位于栈顶.随着不同应用的运行,每个Activity都 ...

  5. Hazelcast

    Hazelcast是一个高度可扩展的数据分发和集群平台.特性包括: 提供java.util.{Queue, Set, List, Map}分布式实现. 提供java.util.concurrency. ...

  6. ListView 实现多选/单选

    http://blog.csdn.net/ljfbest/article/details/40685327 ListView自身带了单选.多选模式,可通过listview.setChoiceMode来 ...

  7. effective c++(03)之const使用方法

    char greeting[] = "hello"; char* p = greeting; //non-const pointer,non-const data const ch ...

  8. 基于注解整合struts2与spring的时候如果不引入struts2-spring-plugin包自动装配无效

    基于注解整合struts2与spring的时候如果不引入struts2-spring-plugin包,自动装配将无效,需要spring注入的对象使用时将抛出空指针异常(NullPointerExcep ...

  9. css样式继承 第7节

    样式继承: <html> <head> <title>样式继承</title> <style type="text/css"& ...

  10. 命令行下上传文件到iOS软件 专业文件管理/gplayer

    U盘丢了, 就拿手机当U盘用用先. 一般情况下软件打开上传功能, 在浏览器里上传即可. 可是偏偏我的电影放在了 树莓派里面(搭建了一个SMB), 直接浏览器的话,会多占用些带宽, 我的破路由器.... ...