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. Java反编译器安装及各版本介绍

    JAVA语言是1995年5月由SUN公司发布的,由于其安全性高.代码优化.跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位.         不过,JAVA最突出 ...

  2. 批处理:循环解压不同文件夹下的zip压缩包

    结构如下 A文件夹: A1文件.zip A2文件.zip A3文件.zip B文件夹: B1文件.zip B2文件.zip B3文件.zip ...... 批处理文件:rezip.bat如下 @ech ...

  3. SignalR安装以及安装问题

    正常节奏 介绍 SignalR 是 ASP.NET 团队正在开发的一个 Microsoft .NET Framework 库和 jQuery 插件,可能包括在以后版本的 ASP.NET 平台中. 它提 ...

  4. linux 内核 编绎配制选项详解

    http://blog.sina.com.cn/s/blog_8308bc810102ux0j.html

  5. FastJSON应用前测试--转载

    FastJSON 应用前测试   FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能.   ...

  6. L2TP

    点击查看详情>>   我的贡献 |退出 L2TP 编辑词条 L2TP是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密.不过也有不同之处 ...

  7. laydate JS日期插件

    原文出处 简要介绍 你是时候换一款日期控件了,而layDate非常愿意和您成为工作伙伴.她致力于成为全球最用心的web日期支撑,为国内外所有从事web应用开发的同仁提供力所能及的动力.她基于原生Jav ...

  8. java strtus2 DynamicMethodInvocation配置入门 " ! "访问action里面的方法

    这里来讲解一下strtus2动态配置的用法. 配置之后不用通过 <action method="">去配置调用的具体方法. 第一:web.xml <?xml ve ...

  9. ASP.NET MVC(二) 理解MVC

    MVC模型同时提供对HTML.CSS以及JavaScript的完整控制. MVC模型通过三个逻辑层来定义WEB应用程序: (一)Business layer(业务层.模型逻辑) 模型(Model) 模 ...

  10. Visual C++ 打印编程技术-打印基础知识

    打印机介绍 1.打印术语 *: 1 英寸= 2.54 厘米(cm)= 25.4 毫米(mm) cpi (Characters Per Inch): 每英寸内所含的字符数,用来表示字符的大小.间距 cp ...