已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合结算产品部技术专题研究 构建在UNIX和Oracle上的应用系统的综合优化文档编号:ZHJS_BASELIB_V1.0文档信息项目名称项目经理文档版本1.0质量评审方法文档编写人何毅编写日期2010-11-19文档评审人评审日期分发FromDatePhone/FaxTo Action*Due DatePhone/Fax* Action Types: Approve, Review, Inform, File, Action Required, Attend Meeting, Other (please specify)文档变更历史版本号版本日期修改人变更描述0.12010-11-19何毅文档创建;创建功能规格书内容框架; 版权说明All rights reserved. Neither the whole nor any parts of this document may be reproduced, stored in any retrieval system or transmitted, in any form or by any means, without the prior written consent of the copyright owner.Copyright 2007 by 联创科技-综合结算产品部All rights reserved.目录:Copyright 2007 by 联创科技-综合结算产品部31文档介绍6文档编写目的6文档阅读对象6涵盖范围6缩略语定义6参考文档6文档概要72UNIX篇72.1综合认识你的UNIX环境72.1.1服务器软硬件型号72.1.2服务器网络信息72.1.3服务器其他配置信息82.1.4服务器的安装环境92.2设备管理和LVM优化场景102.1.1认识机器上的设备112.1.2 LVM条带化优化112.1.3 阵列选型上的优化122.3VMM机制和优化场景122.3.1从进程的角度分析和优化资源占用132.3.2从OS的角度分析和优化资源占用132.4I/O子系统和优化场景142.4.1优化应用对文件描述符的使用142.4.2从INode的角度优化应用152.4.3不均衡IO与vg和lv的关系162.5Unix网络体系及优化场景162.5.1过多的TIME_WAIT端口172.5.2长连接与短连接的问题182.6进程调度优化场景192.6.1应用是否总在内核态执行192.6.2动态改变大作业的优先级212.7kernel相关参数及优化场景212.7.1Kernel参数查看和修改方法222.7.2Kernel参数分类介绍222.8使用操作系统的日志402.8.1日志文件列举402.8.2使用基于utmp/wtmp的命令进行监测403Oracle篇423.1Oracle核心参数优化场景423.1.1 SID核心参数列举423.1.2一个优化案例433.2存储空间使用和管理443.2.1表空间和数据文件管理453.2.2还原表空间管理463.2.3重做日志管理473.2.4控制文件管理483.3对象存储定义优化场景483.3.1索引设计的有效性483.3.2创建表时的性能因素493.3.3段管理和HWM503.4I/O配置的优化543.4.1基本的I/O配置553.4.2均衡I/O的实现553.4.3工程上的典型配置563.5内存配置的优化573.5.1Oracle的内存分配573.5.2SGA内存分配原则573.5.3高速数据缓存问题583.5.4共享池使用问题603.5.5重做日志缓存问题613.5.6PGA内存分配原则613.6SQL优化场景623.6.1SQL语句的执行过程623.6.2恰当的数据库连接机制643.6.3硬解析、软解析653.6.4执行计划与hints653.6.5SQL跟踪和分析703.7Oracle Lock及Latch733.7.1 锁(Lock)733.7.2 闩(Latch)753.8Oracle的checkpoint与SCN763.8.1 Checkpoint763.8.2 SCN783.8.3 Flashback793.9oracle常用数据字典811 文档介绍本文档从工程实践出发,对以往的大型工程中遇到的问题进行了分类总结,部分问题在问题解决后进一步做了比较深入的分析,并在该文档中做了最终记录。限于作者水平有限,文档中不免会有错误,欢迎大家指正。文档中的所有实例取自以下平台(集团IDEP测试机):机型:ia64 hp server rx6600操作系统:HP-UX B.11.31数据库:Oracle .0文档编写目的 对构建在UNIX和Oracle上的大型应用系统综合优化提够一个框架性的思路和一些常用的手段,文中的各个案例也许在你的工程中已经或正在发生。文档阅读对象研发人员、工程实施人员、系统维护人员、也可作为培训材料。涵盖范围Unix操作系统、oracle、调优缩略语定义无。参考文档UNIX操作系统、ORACLE大型数据库系统在AIX/UNIX上的实战讲解、计算机网络及组网技术、UNIX环境高级编程。文档概要2 UNIX篇2.1 综合认识你的UNIX环境2.1.1服务器软硬件型号机器硬件型号:modelVCINT-2#/etcmodelia64 hp server rx6600ia64:处理器为英特尔安腾64位处理器;除安腾处理器外,HP机型中还会采用PA-RISC系列处理器或x86系列处理器。rx6600:机器硬件型号,该硬件型号为安腾系列机下的一个子型号,目前新购机型大多是Superdome。查看机器的硬件型号和属性:ioscan例如查看硬盘设备VCINT-2#/ioscan -funC disk|moreClass I H/W Path Driver S/W State H/W Type Description=disk 40 0/3/1/.0.0.0 sdisk CLAIMED DEVICE HP OPEN-V /dev/dsk/c22t0d0 /dev/rdsk/c22t0d0I:Instance,是按照设备加入顺序生成的,一旦生成就不可改变硬件路径:H/W Path,Cell/SBA/LBA/Device/Function.Target/dev/dsk/c22t0d0:磁盘对应的块设备文件/dev/rdsk/c22t0d0:磁盘对应的字符设备文件机器操作系统版本:uname aVCINT-2#/etcuname -aHP-UX VCINT-2 B.11.31 U ia64 0872255882 unlimited-user licenseB.11.31:操作系统版本为HP-UNIX 11.31机器内核运行在64位还是32位:getconf KERNEL_BITSVCINT-2#/etcgetconf KERNEL_BITS6464:机器内核运行在64位,那么这时候应用可以选择运行在32位或64位,在aCC编译器中使用+DD32 或 +DD64.若getconf KERNEL_BITS显示的是32位内核,那么这时候应用程序只能运行在32位环境下,+DD64是不生效的。2.1.2服务器网络信息机器的网络属性:机器的网卡信息:VCINT-2#/etclanscanHardware Station Crd Hdw Net-Interface NM MAC HP-DLPI DLPIPath Address In# State NamePPA ID Type Support Mjr#0/4/2/0 0x001A4B08B2EC 1 UP lan1 snap1 1 ETHER Yes 1190/5/2/0 0x0018FE2DCBA0 4 UP lan4 snap4 2 ETHER Yes 1190/2/1/0 0x001F290DBB3A 0 UP lan0 snap0 3 ETHER Yes 1190/4/2/1 0x001A4B08B2ED 2 UP lan2 snap2 4 ETHER Yes 1190/5/1/0 0x001F290DBC1F 3 UP lan3 snap3 5 ETHER Yes 119Name:该机器有5块网卡,名字为lan0lan4。Type:网卡类型为ETHER(以太网卡)。机器的IP信息:VCINT-2#/etcnetstat -inName Mtu Network Address Ipkts Ierrs Opkts Oerrs Colllo0 32808 9809109911 0 9809110647 0 0 lan4 1500 8 12478083990 0 12445447123 0 0 Address: 8为本机的IP地址,配置在lan4网卡上,为回路地址机器的路由信息:VCINT-2#/etcnetstat -rnRouting tablesDestination Gateway Flags Refs Interface Pmtu UH 0 lo0 328088 8 UH 0 lan4 328082 25 UGH 0 lan4 054 25 UGH 0 lan4 0default 26 UG 0 lan4 1500default :表示默认路由都是通过网关26出去的。2.1.3服务器其他配置信息机器的其他配置参数都可以通过sam管理工具查看和修改,sam必须在root下才能运行,Sam管理的信息包含以下几类。其中最常用的几类我用红色标注出来了。a - Auditing and Security c - Auditing and Security Attributes Configuration(new) d - Peripheral Devices e - Resource Management f - Disks and File Systems g - Display k - Kernel Configuration l - Printers and Plotters(new) m - Event Monitoring Service n - Networking and Communications p - Printers and Plotters s - Software Management u - Accounts for Users and GroupsDisks and File Systems:该项是做磁盘和文件系统管理的,分为PV,VG,LV,FS四个层次管理。Kernel Configuration:该项是做内核参数管理的,若做内核参数调优,则Tunables项中包含了所有的主机内核参数。Networking and Communications:该项是做网络接口卡和网络服务管理的。Accounts for Users and Groups:该项是做用户和组管理的。2.1.4服务器的安装环境安装环境生产的LVM信息:安装环境会自动创建vg00卷组,安装环境的所有信息都是安装在vg00下的。Filesystem kbytes used avail %used Mounted on/dev/vg00/lvol3 2097152 296072 1787072 14% / 根卷 /dev/vg00/lvol1 2051553 103455 1742942 6% /stand 存放系统内核 /dev/vg00/lvol7 10485760 5012520 5431672 48% /var 存放系统日志/dev/vg00/lvol6 10485760 2962536 7464480 28% /usr 存放系统命令/dev/vg00/lvol5 5242880 2873984 2350432 55% /tmp 存放临时文件/dev/vg00/lvol4 15368192 4454392 10828576 29% /opt 存放应用软件/dev/vg00/lvol8 2097152 1365784 731368 65% /home 存放用户文件/dev/vg00/Oracle 15728640 5177244 9902425 34% /Oracle Oracle安装目录一些特殊的资源:特殊配置文件:/etc:下面存放了主机相关配置文件,常用的列举如下:/etc/inittab:主机启动过程中引导完成后初始化程序根据该文件加载文件系统及系统核心程序,启动1号进程。/etc/hosts:主机名配置文件,提供机器名和IP的映射。/etc/networks:网络名文件,提供IP地址和网络名的映射。/etc/passwd:口令文件,保存系统的用户和用户信息。/etc/group:用户组文件。/etc/services:Services 与 Socket端口对应资源文件/etc/fstab:文件系统信息。/etc/lvmtab:lvm信息,为二进制文件,使用命令strings /etc/lvmtab可以查看vg和pv信息。/etc/rc.config.d/netconf:系统网络配置相关信息,包括网络接口卡、IP地址、子网掩码、路由信息等。/stand/system:包含系统的驱动程序和子系统信息,内核设备信息和一些系统可调参数信息。日志文件:/var:系统日志信息,常用的系统日志信息列举如下:/var/adm/sulog: 使用su - 命令登录系统的日志;/var/adm/wtmps:记录每一次用户登录和注销的历史信息,包括ftp,telnet等,二进制日志,可以使用last命令查看,或用strings命令查看。wtmps可以清理该文件;/var/adm/btmp:用户登录失败的信息/var/adm/shutdownlog - /etc/shutdownlog:系统关闭日志/var/adm/kc.log:系统内核参数调整日志 kctune/var/adm/nettl.LOG* :系统网络日志/var/adm/crash :core dump, 非正常关机产生的日志/var/adm/rc.log - /etc/rc.log:系统启动日志/var/sam:sam管理工具相关日志/var/nfs:文件系统相关日志/var/opt:应用软件相关日志/var/adm/sw/:有关软件包的安装删除信息2.2 设备管理和LVM优化场景设备管理总体框架:第六层:应用程序或命令第五层:逻辑设备(对于磁盘存储设备为LVM)第四层:操作系统第三层:设备驱动程序第二层:设备控制器(适配器接口)第一层:物理I/O设备2.1.1认识机器上的设备 日常管理中最常使用的几类设备文件如下: /dev : 包含所有的终端、moderm、lan、打印机等的设备文件 /dev/dsk : 包含所有的块磁盘设备文件 /dev/rdsk :包含所有的字符磁盘设备文件 /dev/rmt :包含所有的磁带设备文件 /dev/*lan*:包含所有的网卡设备文件 /dev/tty*: 终端或调制解调器设备文件 HP-UNIX下的磁盘阵列设备文件:VCINT-2#/dev/dskll|moretotal 0brw-r- 1 bin sys 31 0x100000 Aug 31 2008 c16t0d0brw-r- 1 bin sys 31 0x100100 Aug 31 2008 c16t0d1brw-r- 1 bin sys 31 0x100200 Aug 31 2008 c16t0d2b:表示是块设备文件,磁盘存储设备既对应一个块设备文件,又对应一个字符设备文件,相应的字符设备文件在/dev/rdsk目录下。31:表示设备大类,31为磁盘设备类。0x100200:次设备号,表示某个大分类设备中某一特定类型的标识,次设备号与设备驱动程序使用的参数相对应,可以用来确定要读写的具体设备。逻辑上对应一个LUN。c16t0d2:磁盘设备文件名,c16表示对应的设备驱动程序号为16,t0表示对于的SCSI接口号为0,d2表示对应的LUN(逻辑单元号)号为2. 2.1.2 LVM条带化优化 LVM位于操作系统和应用程序(或命令)之间,属于逻辑设备管理范畴,LVM的基本层次结构为:PV(物理卷)-vg(逻辑卷组)-lv(逻辑卷/裸设备)-fs(文件系统)。对于传统的LVM设置,一个lv是位于一块磁盘或者一个LUN上的,那么在做大批量的并发文件读写操作时容易产生I/O分布不均,导致I/O瓶颈,工程上的建议是采用条带化处理。条带化概念:条带化(Striping)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中不同磁盘上的方法。条带化的两个技术指标是条带深度和条带化宽度。条带化深度:一次逻辑IO请求的大小。条带化宽度:将I/O分布在多少块磁盘上。条带宽度 = IO请求的大小 / 条带深度应用场景:HB 3.0集团试点(排重索引文件系统、中间落地文件系统)lvcreate i 5 I 32 n lvFruit L 512000 /dev/vg13这样就会在vg13下创建一个lv,lv命名为lvFruit(排重索引文件系统)。该lv分布在5个lun上(条带化宽度),每写32K会跳到下一个LUN上(条带话深度)。其中vg13在创建时至少应包含5块磁盘。创建完这样的lv后,再在该lv上创建文件系统,那么对该文件系统的读写操作就经过条带话处理了。创建语句如下:newfs -F vxfs -o fsFruit /dev/vg09/lvFruit;mount /dev/vg09/ lvFruit /Fruit;2.1.3 阵列选型上的优化目前电信OSS系统存储系统大多采用存储区域网(SAN),SAN在本质上是一个巨大的外部RAID系统,在多个不同的系统之间共享存储(因此有网络的概念)。SAN在存储读写及数据冗余度上主要取决于RAID类型。RAID:廉价磁盘冗余阵列,RAID具有两个或多个磁盘驱动器,并创建一个磁盘阵列。对操作系统而言,这个阵列看起来像是一个逻辑磁盘。这个逻辑磁盘也称为磁盘卷,因为它是一个磁盘的集合,但对于用户、应用而言,它们看起来就像一个磁盘。RAID等级:RAID等级是更加数据条的分布方法来区别的,数据条的不同分布方法提供不同的读写效率和不同的容错等级。工程建议: RAID0:是最基本的RAID级别,它只提供磁盘分条。没有数据冗余,类似于在LVM层次上对lv做的条带化处理,RAID0可以提供较高的磁盘读写速度。由于RAID0没有容错能力,RAID0一般用于不太重要的数据存储上,如临时文件等。 RAID1:是最基本的容错R A I D级别。RAID 1,也称为镜像(硬件层次上实现),创建一个数据磁盘的副本。RAID1在读写性能上并没有优势,但他提供了完整的数据冗余集。对于操作系统的安装磁盘,数据库的安装磁盘、数据库控制文件、联机重做日志建议使用RAID1. RAID 5:是使用奇偶校验对数据引入冗余的R A I D容错级别。当数据分割为条时,计算附加的奇偶校验位,并将其存储在一个磁盘的条中。如果一个磁盘失效,导致一个条不能使用时,可以使用奇偶校验位,与存储在其他磁盘上的R A I D条上的数据一起,重新创建失效磁盘驱动器不可访问的条上的数据。因此, RAID 5阵列能够容忍阵列中失去一个磁盘驱动器的故障。RAID5在读写性能上做了类似于RAID0的条带化处理,同时通过奇偶校验做到了一定的数据容错能力。工程上大多比较重要的数据建议使用RAID5.2.3 VMM机制和优化场景VMM的作用是使用虚拟内存来寻址比系统中物理内存更大的内存,它的基本工作方式是将所有的虚拟内存段划分为若干个页面。在 HP-UNIX 中,每个页面的缺省大小为 4KB。所分配的页面可以位于 RAM 或者分页空间(虚拟内存存储于磁盘上)。VMM 还维护一个称为空闲列表 的对象,该对象定义为未分配的页帧。它们用于处理缺页的情况。通常存在少量未分配页面(您可以自行配置),VMM 可以使用这些页面来腾出空间并为其重新分配页帧。可以使用 VMM 的页面置换算法来选择要重新分配页帧的虚拟内存页面。这种分页算法可以确定对当前位于 RAM 中的哪些虚拟内存页面的页帧进行回收,并放回到空闲列表中。对于更详细的分页和页面调度算法这里不做太多描述,可以参考UNIX操作系统相关资料。对页面的换入换出(进程的内外存交换)在unix中是0号进程来实现的。2.3.1从进程的角度分析和优化资源占用在同一台小型机上往往运行了多套应用系统,如Oracle,zhjs,idep等,对于每套应用系统往往有自己的安装用户。综合分析一个用户的资源使用情况或该用户下的进程的资源使用情况往往是很必要的。可以使用下列方法来分析:UNIX95= ps -e -o user,pid,pcpu,vsz,args|grep oracle |awk BEGINsum=0 sum+=$4;ENDprintf oracle t%dn, sum这个shell汇总了oracle用户的所有内存使用情况(包括物理内存和虚拟内存合计)。若在多用户下,分别执行每个用户的统计信息则可以从全局上来分析拿套应用系统在资源占用上有优化的空间。若对单个进程的资源占用情况进行分析,可以使用下面方法:UNIX95= ps -e -o user,pid,pcpu,vsz,args|grep oracle |more这样可以分别列出每个进程的资源占用情况Pid:进程id号Vsz:进程的内存使用情况Pvpu:进程cpu使用情况2.3.2从OS的角度分析和优化资源占用从操作系统分析是从整机总体情况分析,分析整机在内存换页、vmm等待队列等情况。DataExch:/idep/vmstat 5 4 procs memory page faults cpu r b w avm free re at pi po fr de sr in sy cs us sy id 18 4 0 6249268 91832 7 0 26 1 1 0 6 12955 149329 3524 3 5 92 18 4 0 6249268 91586 8 0 104 59 0 0 0 13978 242066 15961 5 35 60 18 2 0 3994675 92492 1 0 52 86 0 0 0 14542 241364 15706 6 35 59 18 2 0 3994675 91707 0 0 90 90 0 0 0 14285 247426 15921 7 33 60r:运行队列b:阻塞的进程的数量,可能是等待I/O或资源avm:使用vm的页面数pi:由页面交换空间换入的页面数。Po:从物理内存换出到交换区的页面数。Us:用户时间。sy:系统时间。常用的几个分析方法是: 如果b值一直居高不下,那么说明这时候阻塞的进程很多,可能是I/O出了问题。 如果是pi和po的值过高,说明内存出现了瓶颈,导致不得不大量使用交换区。例子中的执行结果来看该主机的内存遇到了瓶颈,例子采样于集团上海IDEP。 在一般的应用系统中us时间一般都大于sy时间,如果sy时间总是大于us时间,那么说明应用系统中存在比较多的系统调用,有优化的空间。当出现以上问题时,往往在借助于上面讲述的ps和sar来分析定位进程级别的问题。2.4 I/O子系统和优化场景 UNIX的I/O是主存和外部设备(如磁盘、网络、终端)之间拷贝数据的的过程。I/O分为带缓存的I/O和不带缓存的I/O。若使用标准I/O库进行文件I/O是使用的带缓存的I/O,终端等字符型设备的I/O是不带缓存的I/O(并不是不带缓存,因为要实现字符流的顺序读写,缓存大小很小,可以看成是不带缓存的),网络I/O对传输层和应用层来说是直接从协议栈中读取或写入信息,而对链路层来说则是直接从网络上来读取数据帧。无论是网络I/O还是文件I/O都会使用一类系统资源:文件描述符。2.4.1优化应用对文件描述符的使用 文件描述符是一种系统资源,当文件描述符过度使用会带来应用的异常甚至导致系统崩溃,对文件描述符使用不当一般可能触发到以下几个问题: 打开的文件描述符超过操作系统的限制,操作系统在的核心参数nfile定义了能打开的最大文件数。 单个进程打开的文件描述符超过了操作系统对单进程打开最大文件数的限制,操作系统核心参数maxfiles和maxfiles_lim分别定义了单个进程打开的软文件极限和硬文件极限。 操作系统的nfile、maxfiles、maxfiles_lim定义的很大,应用虽然没有超过该限制,但是打开的文件描述符过多,严重影响到系统的运行效率。从以上来看,分析操作系统的文件描述符使用情况对应用的优化是很必要的。使用lsof来分析应用的文件描述符使用情况。DataExch:/idep/lsof -p 28864lsof: WARNING: compiled for HP-UX release B.11.23; this is B.11.31.COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEMesgTrans 28864 idep cwd DIR 64,0x10001 1024 3183880 /idep/component/binMesgTrans 28864 idep txt REG 64,0x10001 10733744 3257951 /idep (/dev/vg01/idep)MesgTrans 28864 idep 0u IPv4 0xe00000040508b980 0t0 TCP *:* (IDLE)MesgTrans 28864 idep 1u STR 0,0 0t52328204 1589 /dev/pts/te-ldterm-ptem-telsMesgTrans 28864 idep 2u STR 99,0x4 0t52328204 1589 /dev/pts/te-ldterm-ptem-telsMesgTrans 28864 idep 3u REG 64,0x10002 50688 26345 /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/diaus.msbMesgTrans 28864 idep 4u REG 64,0x10002 19456 26427 /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/ocizhs.msbMesgTrans 28864 idep 5u REG 64,0x10002 27136 26426 /oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/ocius.msbCommand:表示进程名PID:进程IDUSER:进程所属用户FD:文件描述符,cwd表示目录,txt表示代码或可执行文件,02u标准输入、标准输出、错误输出。其他打开的文件。前面的数字表示文件描述符,后面的u表示该文件被打开并处于读取/写入模式TYPE:文件描述符类型。DIR表示目录、REG表示字符设备、STR表示流。DEVICE:设备名SIZE/OFF:文件大小NODE:文件在磁盘上的节点NAME:文件名以上这个命令在分析某个进程对文件描述符的使用是否合理非常有用,无论是在网络编程或者是做文件操作都能起到事半功倍的作用。2.4.2从INode的角度优化应用文件系统将磁盘空间划分为每1024个字节一组,称为块(不同的操作系统可能不一样,在HPunix下可以使用fstyp v Filesystem命令看到块大小信息)。编号从0到整个磁盘的最大块数.全部块可划分为四个部分,块0称为引导块,Unix文件不用该块;块1称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其它两部分的大小. 从块2开始是i节点表,i节点表中含有i节点,表的块数是可变的。i节点表之后是空闲存储块(数据存储块),可用于存放文件内容. i节点是一个64字节长的表,含有有关一个Unix文件的信息,其中有文件大小,文件所有者,文件存取许可方式,以及文件为普通文件,目录文件还是特别文件等.在i节点中最重要的一项是磁盘地址表. 该表中有13个块号.前10个块号是文件前10块的存放地址.这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序 依次取相应的块.当文件长于10块时磁盘地址表中的第十一项给出一个块号,这 个块号指出的块中含有256个块号,至此,这种方法满足了至多长于266块的文件(272,384字节).如果Unix文件大于266块,磁盘地址表的第十二项给出一个块号, 这个块号指出的块中含有256个块号,这256个块号的每一个块号又指出一块, 块中含256个块号,这些块号才用于取Unix文件的内容.磁盘地址中和第十三项索引 寻址方式与第十二项类似,只是多一级间接索引.除i节点外,文件系统中还有一个非常重要的东西是超级块,在超级块中保存了如下有用的信息。一是保存了文件系统的大小以及所用酷块的大小;二是保存了可用数据库的数量和部分可以及时分配的空闲数据块列表;三是最近一次的更新时间与文件系统的状态;四是空闲Inode结点的个数和部分可以及时使用的inode结点列表。查看文件系统i节点信息可以用下面命令:VCINT-2#/dev/vg03df -i -l|more/bill (/dev/vg04/bill ) : 13099720 total i-nodes 13099716 free i-nodes 4 used i-nodes 0 % i-nodes usedI节点在任何时候都保持在一个used较少的情况下比较正常,若文件系统空间free较多,i节点free不太多了,这时候应该是创建文件系统时候选择了错误的参数导致。从上面i节点的结构来看,应用系统还可能遇到以下问题是i节点导致的: 进程对大文件的读写操作,过大的文件会用到3级索引,3级索引会使都写速度显著降低。 单个目录下存放了太多文件,每个文件都会有一个inode与之对应,而在单个目录下有如此多的文件必然会增加inode检索的时间。对大文件的读写可以用lsof来分析:sc_js_d:scidep/settle/idep lsof|grep scidep|grep VREG|sort -r -k 7|moreunload 1065092 scidep 5u VREG 43,2 22937600 1531410 /settle (/dev/fslv02)unload 819268 scidep 5u VREG 43,2 22937600 1531410 /settle (/dev/fslv02)unload 733304 scidep 5u VREG 43,2 22937600 1531410 /settle (/dev/fslv02)sktsend 717216 scidep 5u VREG 43,2 22937600 1531410 /settle (/dev/fslv02)sktsend 430180 scidep 5u VREG 43,2 22937600 1531410 /settle (/dev/fslv02)这样可以看到应用中打开的最大文件是22937600 bytes。对于怎么从系统角度发现某个目录下有大量文件我还没找到好的方法,目前可以从应用本身去想办法分析。2.4.3不均衡IO与vg和lv的关系均衡I/O一方面可以采用2.2节中讲到的条带化处理,另一方面如果vg、lv、文件系统没有划分好,同样会导致不均衡的I/O。存储规划对I/O的均衡分布起到很大的作用。使用下面命令可以观察目前系统的I/O分布情况:DataExch:/idep/iostat 5 2device bps sps mspsc12t3d0 1089 20.7 1.0c32t3d0 1086 20.5 1.0c32t3d4 1081 20.1 1.0c18t3d0 1077 20.7 1.0c22t3d2 1067 19.0 1.0c22t3d1 1065 22.2 1.0c22t3d0 1056 20.5 1.0c18t3d4 1053 20.1 1.0c12t3d4 1051 19.9 1.0c12t3d6 1051 18.4 1.0device:LUN名bps:Kilobytes transferred per secondsps:每秒的寻道次数msps:每次训导的时间(微秒)如果bps列分布不均,每次采样的数据交换都发生在固定的几块盘上,那么说明存储规划有问题。遇到这种情况使用以下的分析步骤来分析:首先找到这些盘是那个vg的,然后看这个vg下面创建了哪些lv,各个lv对应哪些不同的文件系统。找到对应的文件系统就比较容易分析出为什么在这个文件系统上有如此大的I/O量,再权衡是否有必要拆分这个文件系统,将不同的功能放到不同的文件系统上。2.5 Unix网络体系及优化场景Unix的网络结构分为5个部分,包括硬件/数据链路层、IP层、INET Socket层、BSD Socket层,及应用层。其中内核中包含了4个层次,分别是:1) 硬件/数据链路层:包括设备驱动程序和硬件信息传输控制。2) IP层:是TCP/IP协议中的网络互联层实现的内容。3) INET Socket层:实现比IP层高一级的管理,实现IP分组排序、网络效率控制等功能。4) BSD Socket层:包含BSD Socket编程接口内容。2.5.1过多的TIME_WAIT端口TIME_WAIT端口状态是TCP/IP连接断开的四次握手的最后一步,其中四次握手的过程如下:1.HOST1上的应用程序关闭己方的连接导致TCP发送一个FIN消息给HOST2。2.HOST2发送一个确认消息给HOST1,并且HOST2把FIN作为EOF递交给HOST2上的应用程序。3.一段时间过后,HOST2上的应用程序关闭它那边的连接,引发一个FIN消息给HOST1。4.HOST1给HOST2发送一个确认消息,然后HOST2关闭连接并释放资源,然而,HOST1却没有关闭连接,而是进入了TIME_WAIT状态,并为两个最大段生存时间(2MSL)保留在此状态.设计TIME_WAIT状态的目的有二:1.因为在第四步的时候,HOST1发送的ACK可能丢失并导致HOST2重新发送FIN消息,TIME_WAIT维护连接状态. 如果执行主动关闭的一方HOST1 不进入到TIME_WAIT状态就关闭连接那会发生什么呢?当重传的FIN消息到达时,因为TCP已经不再有连接的信息了,所以就用RST(重新启动)消息应答,导致HOST2进入错误的状态而不是有序终止状态,如果发送最后ACK消息的一方处于TIME_WAIT状态并仍然记录着连接的信息,它就可以正确的响应对等方HOST2的FIN消息了.2.TIME_WAIT为连接中”离群的段”提供从网络中消失的时间.考虑一下,如果延迟或者重传段在连接关闭后到达时会发生什么呢?通常情况下,因为TCP仅仅丢弃该数据并响应RST消息,所以这不会造成任何问题。当RST消息到达发出延时段的 主机时,因为该主机也没有记录连接的任何信息,所以它也丢弃该段。然而,如果两个相同主机之间又建立了一个具有相同端口号的新连接,那么离群的段就可能被看成是新连接的,如果离群的段中数据的任何序列号恰恰在新连接的当前接收窗口中,数据就会被重新接收,其结果就是破坏新连接。根据以上分析看TIME_WAIT状态本身是为连接断开的“离群的段”和可能丢失的ACK设计的,状态本身是合理的,但如果应用程序频繁的建立并断开连接且可用的端口范围有限,那么这时候会导致无端口可用,会导致新的连接失败。DataExch:/idep/while 1 do netstat -a|grep TI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住宅维修改造责任书(6篇)
- 七年级英语下册 Unit 10 I'd like some noodles Section A第2课时(3a-3c)教学设计 (新版)人教新目标版
- 轮系的应用教学设计中职专业课-机械基础-机械制造技术-装备制造大类
- 小学主题班会课件:心灵成长文明传承
- 数据分析师工作流程技能指南
- 人教部编七年级下历史第15课明朝的对外关系教学设计
- 信息技术部门网络安全管理规范与应对方案指南
- 第十六课 我向往的初中生活教学设计小学心理健康人教版六年级下册-人教版
- 数学七年级下册4 一元一次不等式第1课时教案
- 鲁教版化学九年级下册 第九单元 第三节 金属的锈蚀与防护 教案
- GB/T 38512-2020压力容器用铝及铝合金管材
- GB/T 21356-2008无损检测计算机射线照相系统的长期稳定性与鉴定方法
- GB/T 12615.4-2004封闭型平圆头抽芯铆钉51级
- 凯迪拉克汽车-车主讲堂-夏季养护
- QMS-GC03.014-2014a品质刚性管理办法
- 《中国工业和信息化可持续发展报告2022》-24正式版
- 政务信息写作技巧课件
- CNG加气站知识培训课件
- 钻孔灌注桩施工安全控制培训教材课件
- 2021年中国戏曲学院辅导员招聘笔试试题及答案解析
- 轴承失效分析PPT
评论
0/150
提交评论