




已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
綜合結(jié)算產(chǎn)品部技術(shù)專題研究 構(gòu)建在UNIX和Oracle上的應(yīng)用系統(tǒng)的綜合優(yōu)化文檔編號:ZHJS_BASELIB_V1.0文檔信息項目名稱項目經(jīng)理文檔版本1.0質(zhì)量評審方法文檔編寫人何毅編寫日期2010-11-19文檔評審人評審日期分發(fā)FromDatePhone/FaxTo Action*Due DatePhone/Fax* Action Types: Approve, Review, Inform, File, Action Required, Attend Meeting, Other (please specify)文檔變更歷史版本號版本日期修改人變更描述0.12010-11-19何毅文檔創(chuàng)建;創(chuàng)建功能規(guī)格書內(nèi)容框架; 版權(quán)說明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 聯(lián)創(chuàng)科技-綜合結(jié)算產(chǎn)品部All rights reserved.目錄:Copyright 2007 by 聯(lián)創(chuàng)科技-綜合結(jié)算產(chǎn)品部31文檔介紹6文檔編寫目的6文檔閱讀對象6涵蓋范圍6縮略語定義6參考文檔6文檔概要72UNIX篇72.1綜合認(rèn)識你的UNIX環(huán)境72.1.1服務(wù)器軟硬件型號72.1.2服務(wù)器網(wǎng)絡(luò)信息72.1.3服務(wù)器其他配置信息82.1.4服務(wù)器的安裝環(huán)境92.2設(shè)備管理和LVM優(yōu)化場景102.1.1認(rèn)識機(jī)器上的設(shè)備112.1.2 LVM條帶化優(yōu)化112.1.3 陣列選型上的優(yōu)化122.3VMM機(jī)制和優(yōu)化場景122.3.1從進(jìn)程的角度分析和優(yōu)化資源占用132.3.2從OS的角度分析和優(yōu)化資源占用132.4I/O子系統(tǒng)和優(yōu)化場景142.4.1優(yōu)化應(yīng)用對文件描述符的使用142.4.2從INode的角度優(yōu)化應(yīng)用152.4.3不均衡IO與vg和lv的關(guān)系162.5Unix網(wǎng)絡(luò)體系及優(yōu)化場景162.5.1過多的TIME_WAIT端口172.5.2長連接與短連接的問題182.6進(jìn)程調(diào)度優(yōu)化場景192.6.1應(yīng)用是否總在內(nèi)核態(tài)執(zhí)行192.6.2動態(tài)改變大作業(yè)的優(yōu)先級212.7kernel相關(guān)參數(shù)及優(yōu)化場景212.7.1Kernel參數(shù)查看和修改方法222.7.2Kernel參數(shù)分類介紹222.8使用操作系統(tǒng)的日志402.8.1日志文件列舉402.8.2使用基于utmp/wtmp的命令進(jìn)行監(jiān)測403Oracle篇423.1Oracle核心參數(shù)優(yōu)化場景423.1.1 SID核心參數(shù)列舉423.1.2一個優(yōu)化案例433.2存儲空間使用和管理443.2.1表空間和數(shù)據(jù)文件管理453.2.2還原表空間管理463.2.3重做日志管理473.2.4控制文件管理483.3對象存儲定義優(yōu)化場景483.3.1索引設(shè)計的有效性483.3.2創(chuàng)建表時的性能因素493.3.3段管理和HWM503.4I/O配置的優(yōu)化543.4.1基本的I/O配置553.4.2均衡I/O的實現(xiàn)553.4.3工程上的典型配置563.5內(nèi)存配置的優(yōu)化573.5.1Oracle的內(nèi)存分配573.5.2SGA內(nèi)存分配原則573.5.3高速數(shù)據(jù)緩存問題583.5.4共享池使用問題603.5.5重做日志緩存問題613.5.6PGA內(nèi)存分配原則613.6SQL優(yōu)化場景623.6.1SQL語句的執(zhí)行過程623.6.2恰當(dāng)?shù)臄?shù)據(jù)庫連接機(jī)制643.6.3硬解析、軟解析653.6.4執(zhí)行計劃與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常用數(shù)據(jù)字典811 文檔介紹本文檔從工程實踐出發(fā),對以往的大型工程中遇到的問題進(jìn)行了分類總結(jié),部分問題在問題解決后進(jìn)一步做了比較深入的分析,并在該文檔中做了最終記錄。限于作者水平有限,文檔中不免會有錯誤,歡迎大家指正。文檔中的所有實例取自以下平臺(集團(tuán)IDEP測試機(jī)):機(jī)型:ia64 hp server rx6600操作系統(tǒng):HP-UX B.11.31數(shù)據(jù)庫:Oracle .0文檔編寫目的 對構(gòu)建在UNIX和Oracle上的大型應(yīng)用系統(tǒng)綜合優(yōu)化提夠一個框架性的思路和一些常用的手段,文中的各個案例也許在你的工程中已經(jīng)或正在發(fā)生。文檔閱讀對象研發(fā)人員、工程實施人員、系統(tǒng)維護(hù)人員、也可作為培訓(xùn)材料。涵蓋范圍Unix操作系統(tǒng)、oracle、調(diào)優(yōu)縮略語定義無。參考文檔UNIX操作系統(tǒng)、ORACLE大型數(shù)據(jù)庫系統(tǒng)在AIX/UNIX上的實戰(zhàn)講解、計算機(jī)網(wǎng)絡(luò)及組網(wǎng)技術(shù)、UNIX環(huán)境高級編程。文檔概要2 UNIX篇2.1 綜合認(rèn)識你的UNIX環(huán)境2.1.1服務(wù)器軟硬件型號機(jī)器硬件型號:modelVCINT-2#/etcmodelia64 hp server rx6600ia64:處理器為英特爾安騰64位處理器;除安騰處理器外,HP機(jī)型中還會采用PA-RISC系列處理器或x86系列處理器。rx6600:機(jī)器硬件型號,該硬件型號為安騰系列機(jī)下的一個子型號,目前新購機(jī)型大多是Superdome。查看機(jī)器的硬件型號和屬性:ioscan例如查看硬盤設(shè)備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,是按照設(shè)備加入順序生成的,一旦生成就不可改變硬件路徑:H/W Path,Cell/SBA/LBA/Device/Function.Target/dev/dsk/c22t0d0:磁盤對應(yīng)的塊設(shè)備文件/dev/rdsk/c22t0d0:磁盤對應(yīng)的字符設(shè)備文件機(jī)器操作系統(tǒng)版本:uname aVCINT-2#/etcuname -aHP-UX VCINT-2 B.11.31 U ia64 0872255882 unlimited-user licenseB.11.31:操作系統(tǒng)版本為HP-UNIX 11.31機(jī)器內(nèi)核運行在64位還是32位:getconf KERNEL_BITSVCINT-2#/etcgetconf KERNEL_BITS6464:機(jī)器內(nèi)核運行在64位,那么這時候應(yīng)用可以選擇運行在32位或64位,在aCC編譯器中使用+DD32 或 +DD64.若getconf KERNEL_BITS顯示的是32位內(nèi)核,那么這時候應(yīng)用程序只能運行在32位環(huán)境下,+DD64是不生效的。2.1.2服務(wù)器網(wǎng)絡(luò)信息機(jī)器的網(wǎng)絡(luò)屬性:機(jī)器的網(wǎng)卡信息: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:該機(jī)器有5塊網(wǎng)卡,名字為lan0lan4。Type:網(wǎng)卡類型為ETHER(以太網(wǎng)卡)。機(jī)器的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為本機(jī)的IP地址,配置在lan4網(wǎng)卡上,為回路地址機(jī)器的路由信息: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 :表示默認(rèn)路由都是通過網(wǎng)關(guān)26出去的。2.1.3服務(wù)器其他配置信息機(jī)器的其他配置參數(shù)都可以通過sam管理工具查看和修改,sam必須在root下才能運行,Sam管理的信息包含以下幾類。其中最常用的幾類我用紅色標(biāo)注出來了。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:該項是做磁盤和文件系統(tǒng)管理的,分為PV,VG,LV,FS四個層次管理。Kernel Configuration:該項是做內(nèi)核參數(shù)管理的,若做內(nèi)核參數(shù)調(diào)優(yōu),則Tunables項中包含了所有的主機(jī)內(nèi)核參數(shù)。Networking and Communications:該項是做網(wǎng)絡(luò)接口卡和網(wǎng)絡(luò)服務(wù)管理的。Accounts for Users and Groups:該項是做用戶和組管理的。2.1.4服務(wù)器的安裝環(huán)境安裝環(huán)境生產(chǎn)的LVM信息:安裝環(huán)境會自動創(chuàng)建vg00卷組,安裝環(huán)境的所有信息都是安裝在vg00下的。Filesystem kbytes used avail %used Mounted on/dev/vg00/lvol3 2097152 296072 1787072 14% / 根卷 /dev/vg00/lvol1 2051553 103455 1742942 6% /stand 存放系統(tǒng)內(nèi)核 /dev/vg00/lvol7 10485760 5012520 5431672 48% /var 存放系統(tǒng)日志/dev/vg00/lvol6 10485760 2962536 7464480 28% /usr 存放系統(tǒng)命令/dev/vg00/lvol5 5242880 2873984 2350432 55% /tmp 存放臨時文件/dev/vg00/lvol4 15368192 4454392 10828576 29% /opt 存放應(yīng)用軟件/dev/vg00/lvol8 2097152 1365784 731368 65% /home 存放用戶文件/dev/vg00/Oracle 15728640 5177244 9902425 34% /Oracle Oracle安裝目錄一些特殊的資源:特殊配置文件:/etc:下面存放了主機(jī)相關(guān)配置文件,常用的列舉如下:/etc/inittab:主機(jī)啟動過程中引導(dǎo)完成后初始化程序根據(jù)該文件加載文件系統(tǒng)及系統(tǒng)核心程序,啟動1號進(jìn)程。/etc/hosts:主機(jī)名配置文件,提供機(jī)器名和IP的映射。/etc/networks:網(wǎng)絡(luò)名文件,提供IP地址和網(wǎng)絡(luò)名的映射。/etc/passwd:口令文件,保存系統(tǒng)的用戶和用戶信息。/etc/group:用戶組文件。/etc/services:Services 與 Socket端口對應(yīng)資源文件/etc/fstab:文件系統(tǒng)信息。/etc/lvmtab:lvm信息,為二進(jìn)制文件,使用命令strings /etc/lvmtab可以查看vg和pv信息。/etc/rc.config.d/netconf:系統(tǒng)網(wǎng)絡(luò)配置相關(guān)信息,包括網(wǎng)絡(luò)接口卡、IP地址、子網(wǎng)掩碼、路由信息等。/stand/system:包含系統(tǒng)的驅(qū)動程序和子系統(tǒng)信息,內(nèi)核設(shè)備信息和一些系統(tǒng)可調(diào)參數(shù)信息。日志文件:/var:系統(tǒng)日志信息,常用的系統(tǒng)日志信息列舉如下:/var/adm/sulog: 使用su - 命令登錄系統(tǒng)的日志;/var/adm/wtmps:記錄每一次用戶登錄和注銷的歷史信息,包括ftp,telnet等,二進(jìn)制日志,可以使用last命令查看,或用strings命令查看。wtmps可以清理該文件;/var/adm/btmp:用戶登錄失敗的信息/var/adm/shutdownlog - /etc/shutdownlog:系統(tǒng)關(guān)閉日志/var/adm/kc.log:系統(tǒng)內(nèi)核參數(shù)調(diào)整日志 kctune/var/adm/nettl.LOG* :系統(tǒng)網(wǎng)絡(luò)日志/var/adm/crash :core dump, 非正常關(guān)機(jī)產(chǎn)生的日志/var/adm/rc.log - /etc/rc.log:系統(tǒng)啟動日志/var/sam:sam管理工具相關(guān)日志/var/nfs:文件系統(tǒng)相關(guān)日志/var/opt:應(yīng)用軟件相關(guān)日志/var/adm/sw/:有關(guān)軟件包的安裝刪除信息2.2 設(shè)備管理和LVM優(yōu)化場景設(shè)備管理總體框架:第六層:應(yīng)用程序或命令第五層:邏輯設(shè)備(對于磁盤存儲設(shè)備為LVM)第四層:操作系統(tǒng)第三層:設(shè)備驅(qū)動程序第二層:設(shè)備控制器(適配器接口)第一層:物理I/O設(shè)備2.1.1認(rèn)識機(jī)器上的設(shè)備 日常管理中最常使用的幾類設(shè)備文件如下: /dev : 包含所有的終端、moderm、lan、打印機(jī)等的設(shè)備文件 /dev/dsk : 包含所有的塊磁盤設(shè)備文件 /dev/rdsk :包含所有的字符磁盤設(shè)備文件 /dev/rmt :包含所有的磁帶設(shè)備文件 /dev/*lan*:包含所有的網(wǎng)卡設(shè)備文件 /dev/tty*: 終端或調(diào)制解調(diào)器設(shè)備文件 HP-UNIX下的磁盤陣列設(shè)備文件: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:表示是塊設(shè)備文件,磁盤存儲設(shè)備既對應(yīng)一個塊設(shè)備文件,又對應(yīng)一個字符設(shè)備文件,相應(yīng)的字符設(shè)備文件在/dev/rdsk目錄下。31:表示設(shè)備大類,31為磁盤設(shè)備類。0x100200:次設(shè)備號,表示某個大分類設(shè)備中某一特定類型的標(biāo)識,次設(shè)備號與設(shè)備驅(qū)動程序使用的參數(shù)相對應(yīng),可以用來確定要讀寫的具體設(shè)備。邏輯上對應(yīng)一個LUN。c16t0d2:磁盤設(shè)備文件名,c16表示對應(yīng)的設(shè)備驅(qū)動程序號為16,t0表示對于的SCSI接口號為0,d2表示對應(yīng)的LUN(邏輯單元號)號為2. 2.1.2 LVM條帶化優(yōu)化 LVM位于操作系統(tǒng)和應(yīng)用程序(或命令)之間,屬于邏輯設(shè)備管理范疇,LVM的基本層次結(jié)構(gòu)為:PV(物理卷)-vg(邏輯卷組)-lv(邏輯卷/裸設(shè)備)-fs(文件系統(tǒng))。對于傳統(tǒng)的LVM設(shè)置,一個lv是位于一塊磁盤或者一個LUN上的,那么在做大批量的并發(fā)文件讀寫操作時容易產(chǎn)生I/O分布不均,導(dǎo)致I/O瓶頸,工程上的建議是采用條帶化處理。條帶化概念:條帶化(Striping)是把連續(xù)的數(shù)據(jù)分割成相同大小的數(shù)據(jù)塊,把每段數(shù)據(jù)分別寫入到陣列中不同磁盤上的方法。條帶化的兩個技術(shù)指標(biāo)是條帶深度和條帶化寬度。條帶化深度:一次邏輯IO請求的大小。條帶化寬度:將I/O分布在多少塊磁盤上。條帶寬度 = IO請求的大小 / 條帶深度應(yīng)用場景:HB 3.0集團(tuán)試點(排重索引文件系統(tǒng)、中間落地文件系統(tǒng))lvcreate i 5 I 32 n lvFruit L 512000 /dev/vg13這樣就會在vg13下創(chuàng)建一個lv,lv命名為lvFruit(排重索引文件系統(tǒng))。該lv分布在5個lun上(條帶化寬度),每寫32K會跳到下一個LUN上(條帶話深度)。其中vg13在創(chuàng)建時至少應(yīng)包含5塊磁盤。創(chuàng)建完這樣的lv后,再在該lv上創(chuàng)建文件系統(tǒng),那么對該文件系統(tǒng)的讀寫操作就經(jīng)過條帶話處理了。創(chuàng)建語句如下:newfs -F vxfs -o fsFruit /dev/vg09/lvFruit;mount /dev/vg09/ lvFruit /Fruit;2.1.3 陣列選型上的優(yōu)化目前電信OSS系統(tǒng)存儲系統(tǒng)大多采用存儲區(qū)域網(wǎng)(SAN),SAN在本質(zhì)上是一個巨大的外部RAID系統(tǒng),在多個不同的系統(tǒng)之間共享存儲(因此有網(wǎng)絡(luò)的概念)。SAN在存儲讀寫及數(shù)據(jù)冗余度上主要取決于RAID類型。RAID:廉價磁盤冗余陣列,RAID具有兩個或多個磁盤驅(qū)動器,并創(chuàng)建一個磁盤陣列。對操作系統(tǒng)而言,這個陣列看起來像是一個邏輯磁盤。這個邏輯磁盤也稱為磁盤卷,因為它是一個磁盤的集合,但對于用戶、應(yīng)用而言,它們看起來就像一個磁盤。RAID等級:RAID等級是更加數(shù)據(jù)條的分布方法來區(qū)別的,數(shù)據(jù)條的不同分布方法提供不同的讀寫效率和不同的容錯等級。工程建議: RAID0:是最基本的RAID級別,它只提供磁盤分條。沒有數(shù)據(jù)冗余,類似于在LVM層次上對lv做的條帶化處理,RAID0可以提供較高的磁盤讀寫速度。由于RAID0沒有容錯能力,RAID0一般用于不太重要的數(shù)據(jù)存儲上,如臨時文件等。 RAID1:是最基本的容錯R A I D級別。RAID 1,也稱為鏡像(硬件層次上實現(xiàn)),創(chuàng)建一個數(shù)據(jù)磁盤的副本。RAID1在讀寫性能上并沒有優(yōu)勢,但他提供了完整的數(shù)據(jù)冗余集。對于操作系統(tǒng)的安裝磁盤,數(shù)據(jù)庫的安裝磁盤、數(shù)據(jù)庫控制文件、聯(lián)機(jī)重做日志建議使用RAID1. RAID 5:是使用奇偶校驗對數(shù)據(jù)引入冗余的R A I D容錯級別。當(dāng)數(shù)據(jù)分割為條時,計算附加的奇偶校驗位,并將其存儲在一個磁盤的條中。如果一個磁盤失效,導(dǎo)致一個條不能使用時,可以使用奇偶校驗位,與存儲在其他磁盤上的R A I D條上的數(shù)據(jù)一起,重新創(chuàng)建失效磁盤驅(qū)動器不可訪問的條上的數(shù)據(jù)。因此, RAID 5陣列能夠容忍陣列中失去一個磁盤驅(qū)動器的故障。RAID5在讀寫性能上做了類似于RAID0的條帶化處理,同時通過奇偶校驗做到了一定的數(shù)據(jù)容錯能力。工程上大多比較重要的數(shù)據(jù)建議使用RAID5.2.3 VMM機(jī)制和優(yōu)化場景VMM的作用是使用虛擬內(nèi)存來尋址比系統(tǒng)中物理內(nèi)存更大的內(nèi)存,它的基本工作方式是將所有的虛擬內(nèi)存段劃分為若干個頁面。在 HP-UNIX 中,每個頁面的缺省大小為 4KB。所分配的頁面可以位于 RAM 或者分頁空間(虛擬內(nèi)存存儲于磁盤上)。VMM 還維護(hù)一個稱為空閑列表 的對象,該對象定義為未分配的頁幀。它們用于處理缺頁的情況。通常存在少量未分配頁面(您可以自行配置),VMM 可以使用這些頁面來騰出空間并為其重新分配頁幀。可以使用 VMM 的頁面置換算法來選擇要重新分配頁幀的虛擬內(nèi)存頁面。這種分頁算法可以確定對當(dāng)前位于 RAM 中的哪些虛擬內(nèi)存頁面的頁幀進(jìn)行回收,并放回到空閑列表中。對于更詳細(xì)的分頁和頁面調(diào)度算法這里不做太多描述,可以參考UNIX操作系統(tǒng)相關(guān)資料。對頁面的換入換出(進(jìn)程的內(nèi)外存交換)在unix中是0號進(jìn)程來實現(xiàn)的。2.3.1從進(jìn)程的角度分析和優(yōu)化資源占用在同一臺小型機(jī)上往往運行了多套應(yīng)用系統(tǒng),如Oracle,zhjs,idep等,對于每套應(yīng)用系統(tǒng)往往有自己的安裝用戶。綜合分析一個用戶的資源使用情況或該用戶下的進(jìn)程的資源使用情況往往是很必要的??梢允褂孟铝蟹椒▉矸治觯篣NIX95= ps -e -o user,pid,pcpu,vsz,args|grep oracle |awk BEGINsum=0 sum+=$4;ENDprintf oracle t%dn, sum這個shell匯總了oracle用戶的所有內(nèi)存使用情況(包括物理內(nèi)存和虛擬內(nèi)存合計)。若在多用戶下,分別執(zhí)行每個用戶的統(tǒng)計信息則可以從全局上來分析拿套應(yīng)用系統(tǒng)在資源占用上有優(yōu)化的空間。若對單個進(jìn)程的資源占用情況進(jìn)行分析,可以使用下面方法:UNIX95= ps -e -o user,pid,pcpu,vsz,args|grep oracle |more這樣可以分別列出每個進(jìn)程的資源占用情況Pid:進(jìn)程id號Vsz:進(jìn)程的內(nèi)存使用情況Pvpu:進(jìn)程cpu使用情況2.3.2從OS的角度分析和優(yōu)化資源占用從操作系統(tǒng)分析是從整機(jī)總體情況分析,分析整機(jī)在內(nèi)存換頁、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:阻塞的進(jìn)程的數(shù)量,可能是等待I/O或資源avm:使用vm的頁面數(shù)pi:由頁面交換空間換入的頁面數(shù)。Po:從物理內(nèi)存換出到交換區(qū)的頁面數(shù)。Us:用戶時間。sy:系統(tǒng)時間。常用的幾個分析方法是: 如果b值一直居高不下,那么說明這時候阻塞的進(jìn)程很多,可能是I/O出了問題。 如果是pi和po的值過高,說明內(nèi)存出現(xiàn)了瓶頸,導(dǎo)致不得不大量使用交換區(qū)。例子中的執(zhí)行結(jié)果來看該主機(jī)的內(nèi)存遇到了瓶頸,例子采樣于集團(tuán)上海IDEP。 在一般的應(yīng)用系統(tǒng)中us時間一般都大于sy時間,如果sy時間總是大于us時間,那么說明應(yīng)用系統(tǒng)中存在比較多的系統(tǒng)調(diào)用,有優(yōu)化的空間。當(dāng)出現(xiàn)以上問題時,往往在借助于上面講述的ps和sar來分析定位進(jìn)程級別的問題。2.4 I/O子系統(tǒng)和優(yōu)化場景 UNIX的I/O是主存和外部設(shè)備(如磁盤、網(wǎng)絡(luò)、終端)之間拷貝數(shù)據(jù)的的過程。I/O分為帶緩存的I/O和不帶緩存的I/O。若使用標(biāo)準(zhǔn)I/O庫進(jìn)行文件I/O是使用的帶緩存的I/O,終端等字符型設(shè)備的I/O是不帶緩存的I/O(并不是不帶緩存,因為要實現(xiàn)字符流的順序讀寫,緩存大小很小,可以看成是不帶緩存的),網(wǎng)絡(luò)I/O對傳輸層和應(yīng)用層來說是直接從協(xié)議棧中讀取或?qū)懭胄畔?,而對鏈路層來說則是直接從網(wǎng)絡(luò)上來讀取數(shù)據(jù)幀。無論是網(wǎng)絡(luò)I/O還是文件I/O都會使用一類系統(tǒng)資源:文件描述符。2.4.1優(yōu)化應(yīng)用對文件描述符的使用 文件描述符是一種系統(tǒng)資源,當(dāng)文件描述符過度使用會帶來應(yīng)用的異常甚至導(dǎo)致系統(tǒng)崩潰,對文件描述符使用不當(dāng)一般可能觸發(fā)到以下幾個問題: 打開的文件描述符超過操作系統(tǒng)的限制,操作系統(tǒng)在的核心參數(shù)nfile定義了能打開的最大文件數(shù)。 單個進(jìn)程打開的文件描述符超過了操作系統(tǒng)對單進(jìn)程打開最大文件數(shù)的限制,操作系統(tǒng)核心參數(shù)maxfiles和maxfiles_lim分別定義了單個進(jìn)程打開的軟文件極限和硬文件極限。 操作系統(tǒng)的nfile、maxfiles、maxfiles_lim定義的很大,應(yīng)用雖然沒有超過該限制,但是打開的文件描述符過多,嚴(yán)重影響到系統(tǒng)的運行效率。從以上來看,分析操作系統(tǒng)的文件描述符使用情況對應(yīng)用的優(yōu)化是很必要的。使用lsof來分析應(yīng)用的文件描述符使用情況。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:表示進(jìn)程名PID:進(jìn)程IDUSER:進(jìn)程所屬用戶FD:文件描述符,cwd表示目錄,txt表示代碼或可執(zhí)行文件,02u標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、錯誤輸出。其他打開的文件。前面的數(shù)字表示文件描述符,后面的u表示該文件被打開并處于讀取/寫入模式TYPE:文件描述符類型。DIR表示目錄、REG表示字符設(shè)備、STR表示流。DEVICE:設(shè)備名SIZE/OFF:文件大小NODE:文件在磁盤上的節(jié)點NAME:文件名以上這個命令在分析某個進(jìn)程對文件描述符的使用是否合理非常有用,無論是在網(wǎng)絡(luò)編程或者是做文件操作都能起到事半功倍的作用。2.4.2從INode的角度優(yōu)化應(yīng)用文件系統(tǒng)將磁盤空間劃分為每1024個字節(jié)一組,稱為塊(不同的操作系統(tǒng)可能不一樣,在HPunix下可以使用fstyp v Filesystem命令看到塊大小信息)。編號從0到整個磁盤的最大塊數(shù).全部塊可劃分為四個部分,塊0稱為引導(dǎo)塊,Unix文件不用該塊;塊1稱為專用塊,專用塊含有許多信息,其中有磁盤大小和全部塊的其它兩部分的大小. 從塊2開始是i節(jié)點表,i節(jié)點表中含有i節(jié)點,表的塊數(shù)是可變的。i節(jié)點表之后是空閑存儲塊(數(shù)據(jù)存儲塊),可用于存放文件內(nèi)容. i節(jié)點是一個64字節(jié)長的表,含有有關(guān)一個Unix文件的信息,其中有文件大小,文件所有者,文件存取許可方式,以及文件為普通文件,目錄文件還是特別文件等.在i節(jié)點中最重要的一項是磁盤地址表. 該表中有13個塊號.前10個塊號是文件前10塊的存放地址.這10個塊號能給出一個至多10塊長的文件的邏輯結(jié)構(gòu),文件將以塊號在磁盤地址表中出現(xiàn)的順序 依次取相應(yīng)的塊.當(dāng)文件長于10塊時磁盤地址表中的第十一項給出一個塊號,這 個塊號指出的塊中含有256個塊號,至此,這種方法滿足了至多長于266塊的文件(272,384字節(jié)).如果Unix文件大于266塊,磁盤地址表的第十二項給出一個塊號, 這個塊號指出的塊中含有256個塊號,這256個塊號的每一個塊號又指出一塊, 塊中含256個塊號,這些塊號才用于取Unix文件的內(nèi)容.磁盤地址中和第十三項索引 尋址方式與第十二項類似,只是多一級間接索引.除i節(jié)點外,文件系統(tǒng)中還有一個非常重要的東西是超級塊,在超級塊中保存了如下有用的信息。一是保存了文件系統(tǒng)的大小以及所用酷塊的大小;二是保存了可用數(shù)據(jù)庫的數(shù)量和部分可以及時分配的空閑數(shù)據(jù)塊列表;三是最近一次的更新時間與文件系統(tǒng)的狀態(tài);四是空閑Inode結(jié)點的個數(shù)和部分可以及時使用的inode結(jié)點列表。查看文件系統(tǒng)i節(jié)點信息可以用下面命令: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節(jié)點在任何時候都保持在一個used較少的情況下比較正常,若文件系統(tǒng)空間free較多,i節(jié)點free不太多了,這時候應(yīng)該是創(chuàng)建文件系統(tǒng)時候選擇了錯誤的參數(shù)導(dǎo)致。從上面i節(jié)點的結(jié)構(gòu)來看,應(yīng)用系統(tǒng)還可能遇到以下問題是i節(jié)點導(dǎo)致的: 進(jìn)程對大文件的讀寫操作,過大的文件會用到3級索引,3級索引會使都寫速度顯著降低。 單個目錄下存放了太多文件,每個文件都會有一個inode與之對應(yīng),而在單個目錄下有如此多的文件必然會增加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)這樣可以看到應(yīng)用中打開的最大文件是22937600 bytes。對于怎么從系統(tǒng)角度發(fā)現(xiàn)某個目錄下有大量文件我還沒找到好的方法,目前可以從應(yīng)用本身去想辦法分析。2.4.3不均衡IO與vg和lv的關(guān)系均衡I/O一方面可以采用2.2節(jié)中講到的條帶化處理,另一方面如果vg、lv、文件系統(tǒng)沒有劃分好,同樣會導(dǎo)致不均衡的I/O。存儲規(guī)劃對I/O的均衡分布起到很大的作用。使用下面命令可以觀察目前系統(tǒng)的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:每秒的尋道次數(shù)msps:每次訓(xùn)導(dǎo)的時間(微秒)如果bps列分布不均,每次采樣的數(shù)據(jù)交換都發(fā)生在固定的幾塊盤上,那么說明存儲規(guī)劃有問題。遇到這種情況使用以下的分析步驟來分析:首先找到這些盤是那個vg的,然后看這個vg下面創(chuàng)建了哪些lv,各個lv對應(yīng)哪些不同的文件系統(tǒng)。找到對應(yīng)的文件系統(tǒng)就比較容易分析出為什么在這個文件系統(tǒng)上有如此大的I/O量,再權(quán)衡是否有必要拆分這個文件系統(tǒng),將不同的功能放到不同的文件系統(tǒng)上。2.5 Unix網(wǎng)絡(luò)體系及優(yōu)化場景Unix的網(wǎng)絡(luò)結(jié)構(gòu)分為5個部分,包括硬件/數(shù)據(jù)鏈路層、IP層、INET Socket層、BSD Socket層,及應(yīng)用層。其中內(nèi)核中包含了4個層次,分別是:1) 硬件/數(shù)據(jù)鏈路層:包括設(shè)備驅(qū)動程序和硬件信息傳輸控制。2) IP層:是TCP/IP協(xié)議中的網(wǎng)絡(luò)互聯(lián)層實現(xiàn)的內(nèi)容。3) INET Socket層:實現(xiàn)比IP層高一級的管理,實現(xiàn)IP分組排序、網(wǎng)絡(luò)效率控制等功能。4) BSD Socket層:包含BSD Socket編程接口內(nèi)容。2.5.1過多的TIME_WAIT端口TIME_WAIT端口狀態(tài)是TCP/IP連接斷開的四次握手的最后一步,其中四次握手的過程如下:1.HOST1上的應(yīng)用程序關(guān)閉己方的連接導(dǎo)致TCP發(fā)送一個FIN消息給HOST2。2.HOST2發(fā)送一個確認(rèn)消息給HOST1,并且HOST2把FIN作為EOF遞交給HOST2上的應(yīng)用程序。3.一段時間過后,HOST2上的應(yīng)用程序關(guān)閉它那邊的連接,引發(fā)一個FIN消息給HOST1。4.HOST1給HOST2發(fā)送一個確認(rèn)消息,然后HOST2關(guān)閉連接并釋放資源,然而,HOST1卻沒有關(guān)閉連接,而是進(jìn)入了TIME_WAIT狀態(tài),并為兩個最大段生存時間(2MSL)保留在此狀態(tài).設(shè)計TIME_WAIT狀態(tài)的目的有二:1.因為在第四步的時候,HOST1發(fā)送的ACK可能丟失并導(dǎo)致HOST2重新發(fā)送FIN消息,TIME_WAIT維護(hù)連接狀態(tài). 如果執(zhí)行主動關(guān)閉的一方HOST1 不進(jìn)入到TIME_WAIT狀態(tài)就關(guān)閉連接那會發(fā)生什么呢?當(dāng)重傳的FIN消息到達(dá)時,因為TCP已經(jīng)不再有連接的信息了,所以就用RST(重新啟動)消息應(yīng)答,導(dǎo)致HOST2進(jìn)入錯誤的狀態(tài)而不是有序終止?fàn)顟B(tài),如果發(fā)送最后ACK消息的一方處于TIME_WAIT狀態(tài)并仍然記錄著連接的信息,它就可以正確的響應(yīng)對等方HOST2的FIN消息了.2.TIME_WAIT為連接中”離群的段”提供從網(wǎng)絡(luò)中消失的時間.考慮一下,如果延遲或者重傳段在連接關(guān)閉后到達(dá)時會發(fā)生什么呢?通常情況下,因為TCP僅僅丟棄該數(shù)據(jù)并響應(yīng)RST消息,所以這不會造成任何問題。當(dāng)RST消息到達(dá)發(fā)出延時段的 主機(jī)時,因為該主機(jī)也沒有記錄連接的任何信息,所以它也丟棄該段。然而,如果兩個相同主機(jī)之間又建立了一個具有相同端口號的新連接,那么離群的段就可能被看成是新連接的,如果離群的段中數(shù)據(jù)的任何序列號恰恰在新連接的當(dāng)前接收窗口中,數(shù)據(jù)就會被重新接收,其結(jié)果就是破壞新連接。根據(jù)以上分析看TIME_WAIT狀態(tài)本身是為連接斷開的“離群的段”和可能丟失的ACK設(shè)計的,狀態(tài)本身是合理的,但如果應(yīng)用程序頻繁的建立并斷開連接且可用的端口范圍有限,那么這時候會導(dǎo)致無端口可用,會導(dǎo)致新的連接失敗。DataExch:/idep/while 1 do netstat -a|grep TI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度重大工傷事故了結(jié)補償協(xié)議
- 二零二五年度家長監(jiān)督孩子行為規(guī)范協(xié)議
- 2025年度酒店客房租賃與節(jié)假日預(yù)訂房間變更合同
- 2025年度果園果樹修剪與嫁接承包經(jīng)營協(xié)議
- 個人車輛貸款合同范本
- 山東2025年02月山東省高唐縣事業(yè)單位公開招考初級綜合類崗位人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 水利溝渠工程合同范本
- 店鋪多人合伙合同范本
- 2024年度貴州省國家保安員資格考試通關(guān)提分題庫(考點梳理)
- 房租合同范本購買
- 邀請函模板完整
- 2022年山東經(jīng)貿(mào)職業(yè)學(xué)院單招綜合素質(zhì)考試筆試試題及答案解析
- 建筑工地三級安全教育卡
- ID5S606B 600V高低側(cè)柵極驅(qū)動芯片兼容PN7103-驪微電子
- 大學(xué)生人文知識競賽報名表
- 小升初閱讀理解專題課件
- 人教部編版九年級下冊歷史第四單元 經(jīng)濟(jì)大危機(jī)和第二次世界大戰(zhàn)單元測試題
- 個人理財實務(wù)教學(xué)課件
- (完整版)新版PEP小學(xué)英語五年級下冊教材分析
- 研發(fā)經(jīng)費填報指標(biāo)說明及核算方法
- 一年級思維訓(xùn)練(課堂PPT)
評論
0/150
提交評論