




免費(fèi)預(yù)覽已結(jié)束,剩余80頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
綜合結(jié)算產(chǎn)品部技術(shù)專題研究 構(gòu)建在UNIX和Oracle上的應(yīng)用系統(tǒng)的綜合優(yōu)化文檔編號(hào):ZHJS_BASELIB_V1.0文檔信息項(xiàng)目名稱項(xiàng)目經(jīng)理文檔版本1.0質(zhì)量評(píng)審方法文檔編寫(xiě)人何毅編寫(xiě)日期2010-11-19文檔評(píng)審人評(píng)審日期分發(fā)FromDatePhone/FaxTo Action*Due DatePhone/Fax* Action Types: Approve, Review, Inform, File, Action Required, Attend Meeting, Other (please specify)文檔變更歷史版本號(hào)版本日期修改人變更描述0.12010-11-19何毅文檔創(chuàng)建;創(chuàng)建功能規(guī)格書(shū)內(nèi)容框架; 版權(quán)說(shuō)明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文檔編寫(xiě)目的6文檔閱讀對(duì)象6涵蓋范圍6縮略語(yǔ)定義6參考文檔6文檔概要72UNIX篇72.1綜合認(rèn)識(shí)你的UNIX環(huán)境72.1.1服務(wù)器軟硬件型號(hào)72.1.2服務(wù)器網(wǎng)絡(luò)信息72.1.3服務(wù)器其他配置信息82.1.4服務(wù)器的安裝環(huán)境92.2設(shè)備管理和LVM優(yōu)化場(chǎng)景102.1.1認(rèn)識(shí)機(jī)器上的設(shè)備112.1.2 LVM條帶化優(yōu)化112.1.3 陣列選型上的優(yōu)化122.3VMM機(jī)制和優(yōu)化場(chǎng)景122.3.1從進(jìn)程的角度分析和優(yōu)化資源占用132.3.2從OS的角度分析和優(yōu)化資源占用132.4I/O子系統(tǒng)和優(yōu)化場(chǎng)景142.4.1優(yōu)化應(yīng)用對(duì)文件描述符的使用142.4.2從INode的角度優(yōu)化應(yīng)用152.4.3不均衡IO與vg和lv的關(guān)系162.5Unix網(wǎng)絡(luò)體系及優(yōu)化場(chǎng)景162.5.1過(guò)多的TIME_WAIT端口172.5.2長(zhǎng)連接與短連接的問(wèn)題182.6進(jìn)程調(diào)度優(yōu)化場(chǎng)景192.6.1應(yīng)用是否總在內(nèi)核態(tài)執(zhí)行192.6.2動(dòng)態(tài)改變大作業(yè)的優(yōu)先級(jí)212.7kernel相關(guān)參數(shù)及優(yōu)化場(chǎng)景212.7.1Kernel參數(shù)查看和修改方法222.7.2Kernel參數(shù)分類介紹222.8使用操作系統(tǒng)的日志402.8.1日志文件列舉402.8.2使用基于utmp/wtmp的命令進(jìn)行監(jiān)測(cè)403Oracle篇423.1Oracle核心參數(shù)優(yōu)化場(chǎng)景423.1.1 SID核心參數(shù)列舉423.1.2一個(gè)優(yōu)化案例433.2存儲(chǔ)空間使用和管理443.2.1表空間和數(shù)據(jù)文件管理453.2.2還原表空間管理463.2.3重做日志管理473.2.4控制文件管理483.3對(duì)象存儲(chǔ)定義優(yōu)化場(chǎng)景483.3.1索引設(shè)計(jì)的有效性483.3.2創(chuàng)建表時(shí)的性能因素493.3.3段管理和HWM503.4I/O配置的優(yōu)化543.4.1基本的I/O配置553.4.2均衡I/O的實(shí)現(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ù)緩存問(wèn)題583.5.4共享池使用問(wèn)題603.5.5重做日志緩存問(wèn)題613.5.6PGA內(nèi)存分配原則613.6SQL優(yōu)化場(chǎng)景623.6.1SQL語(yǔ)句的執(zhí)行過(guò)程623.6.2恰當(dāng)?shù)臄?shù)據(jù)庫(kù)連接機(jī)制643.6.3硬解析、軟解析653.6.4執(zhí)行計(jì)劃與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 文檔介紹本文檔從工程實(shí)踐出發(fā),對(duì)以往的大型工程中遇到的問(wèn)題進(jìn)行了分類總結(jié),部分問(wèn)題在問(wèn)題解決后進(jìn)一步做了比較深入的分析,并在該文檔中做了最終記錄。限于作者水平有限,文檔中不免會(huì)有錯(cuò)誤,歡迎大家指正。文檔中的所有實(shí)例取自以下平臺(tái)(集團(tuán)IDEP測(cè)試機(jī)):機(jī)型:ia64 hp server rx6600操作系統(tǒng):HP-UX B.11.31數(shù)據(jù)庫(kù):Oracle .0文檔編寫(xiě)目的 對(duì)構(gòu)建在UNIX和Oracle上的大型應(yīng)用系統(tǒng)綜合優(yōu)化提夠一個(gè)框架性的思路和一些常用的手段,文中的各個(gè)案例也許在你的工程中已經(jīng)或正在發(fā)生。文檔閱讀對(duì)象研發(fā)人員、工程實(shí)施人員、系統(tǒng)維護(hù)人員、也可作為培訓(xùn)材料。涵蓋范圍Unix操作系統(tǒng)、oracle、調(diào)優(yōu)縮略語(yǔ)定義無(wú)。參考文檔UNIX操作系統(tǒng)、ORACLE大型數(shù)據(jù)庫(kù)系統(tǒng)在AIX/UNIX上的實(shí)戰(zhàn)講解、計(jì)算機(jī)網(wǎng)絡(luò)及組網(wǎng)技術(shù)、UNIX環(huán)境高級(jí)編程。文檔概要2 UNIX篇2.1 綜合認(rèn)識(shí)你的UNIX環(huán)境2.1.1服務(wù)器軟硬件型號(hào)機(jī)器硬件型號(hào):modelVCINT-2#/etcmodelia64 hp server rx6600ia64:處理器為英特爾安騰64位處理器;除安騰處理器外,HP機(jī)型中還會(huì)采用PA-RISC系列處理器或x86系列處理器。rx6600:機(jī)器硬件型號(hào),該硬件型號(hào)為安騰系列機(jī)下的一個(gè)子型號(hào),目前新購(gòu)機(jī)型大多是Superdome。查看機(jī)器的硬件型號(hào)和屬性:ioscan例如查看硬盤(pán)設(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:磁盤(pán)對(duì)應(yīng)的塊設(shè)備文件/dev/rdsk/c22t0d0:磁盤(pán)對(duì)應(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)核運(yùn)行在64位還是32位:getconf KERNEL_BITSVCINT-2#/etcgetconf KERNEL_BITS6464:機(jī)器內(nèi)核運(yùn)行在64位,那么這時(shí)候應(yīng)用可以選擇運(yùn)行在32位或64位,在aCC編譯器中使用+DD32 或 +DD64.若getconf KERNEL_BITS顯示的是32位內(nèi)核,那么這時(shí)候應(yīng)用程序只能運(yùn)行在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)路由都是通過(guò)網(wǎng)關(guān)26出去的。2.1.3服務(wù)器其他配置信息機(jī)器的其他配置參數(shù)都可以通過(guò)sam管理工具查看和修改,sam必須在root下才能運(yùn)行,Sam管理的信息包含以下幾類。其中最常用的幾類我用紅色標(biāo)注出來(lái)了。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:該項(xiàng)是做磁盤(pán)和文件系統(tǒng)管理的,分為PV,VG,LV,FS四個(gè)層次管理。Kernel Configuration:該項(xiàng)是做內(nèi)核參數(shù)管理的,若做內(nèi)核參數(shù)調(diào)優(yōu),則Tunables項(xiàng)中包含了所有的主機(jī)內(nèi)核參數(shù)。Networking and Communications:該項(xiàng)是做網(wǎng)絡(luò)接口卡和網(wǎng)絡(luò)服務(wù)管理的。Accounts for Users and Groups:該項(xiàng)是做用戶和組管理的。2.1.4服務(wù)器的安裝環(huán)境安裝環(huán)境生產(chǎn)的LVM信息:安裝環(huán)境會(huì)自動(dòng)創(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 存放臨時(shí)文件/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òng)過(guò)程中引導(dǎo)完成后初始化程序根據(jù)該文件加載文件系統(tǒng)及系統(tǒng)核心程序,啟動(dòng)1號(hào)進(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端口對(duì)應(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ū)動(dòng)程序和子系統(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)啟動(dò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)化場(chǎng)景設(shè)備管理總體框架:第六層:應(yīng)用程序或命令第五層:邏輯設(shè)備(對(duì)于磁盤(pán)存儲(chǔ)設(shè)備為L(zhǎng)VM)第四層:操作系統(tǒng)第三層:設(shè)備驅(qū)動(dòng)程序第二層:設(shè)備控制器(適配器接口)第一層:物理I/O設(shè)備2.1.1認(rèn)識(shí)機(jī)器上的設(shè)備 日常管理中最常使用的幾類設(shè)備文件如下: /dev : 包含所有的終端、moderm、lan、打印機(jī)等的設(shè)備文件 /dev/dsk : 包含所有的塊磁盤(pán)設(shè)備文件 /dev/rdsk :包含所有的字符磁盤(pán)設(shè)備文件 /dev/rmt :包含所有的磁帶設(shè)備文件 /dev/*lan*:包含所有的網(wǎng)卡設(shè)備文件 /dev/tty*: 終端或調(diào)制解調(diào)器設(shè)備文件 HP-UNIX下的磁盤(pán)陣列設(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è)備文件,磁盤(pán)存儲(chǔ)設(shè)備既對(duì)應(yīng)一個(gè)塊設(shè)備文件,又對(duì)應(yīng)一個(gè)字符設(shè)備文件,相應(yīng)的字符設(shè)備文件在/dev/rdsk目錄下。31:表示設(shè)備大類,31為磁盤(pán)設(shè)備類。0x100200:次設(shè)備號(hào),表示某個(gè)大分類設(shè)備中某一特定類型的標(biāo)識(shí),次設(shè)備號(hào)與設(shè)備驅(qū)動(dòng)程序使用的參數(shù)相對(duì)應(yīng),可以用來(lái)確定要讀寫(xiě)的具體設(shè)備。邏輯上對(duì)應(yīng)一個(gè)LUN。c16t0d2:磁盤(pán)設(shè)備文件名,c16表示對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序號(hào)為16,t0表示對(duì)于的SCSI接口號(hào)為0,d2表示對(duì)應(yīng)的LUN(邏輯單元號(hào))號(hào)為2. 2.1.2 LVM條帶化優(yōu)化 LVM位于操作系統(tǒng)和應(yīng)用程序(或命令)之間,屬于邏輯設(shè)備管理范疇,LVM的基本層次結(jié)構(gòu)為:PV(物理卷)-vg(邏輯卷組)-lv(邏輯卷/裸設(shè)備)-fs(文件系統(tǒng))。對(duì)于傳統(tǒng)的LVM設(shè)置,一個(gè)lv是位于一塊磁盤(pán)或者一個(gè)LUN上的,那么在做大批量的并發(fā)文件讀寫(xiě)操作時(shí)容易產(chǎn)生I/O分布不均,導(dǎo)致I/O瓶頸,工程上的建議是采用條帶化處理。條帶化概念:條帶化(Striping)是把連續(xù)的數(shù)據(jù)分割成相同大小的數(shù)據(jù)塊,把每段數(shù)據(jù)分別寫(xiě)入到陣列中不同磁盤(pán)上的方法。條帶化的兩個(gè)技術(shù)指標(biāo)是條帶深度和條帶化寬度。條帶化深度:一次邏輯IO請(qǐng)求的大小。條帶化寬度:將I/O分布在多少塊磁盤(pán)上。條帶寬度 = IO請(qǐng)求的大小 / 條帶深度應(yīng)用場(chǎng)景:HB 3.0集團(tuán)試點(diǎn)(排重索引文件系統(tǒng)、中間落地文件系統(tǒng))lvcreate i 5 I 32 n lvFruit L 512000 /dev/vg13這樣就會(huì)在vg13下創(chuàng)建一個(gè)lv,lv命名為lvFruit(排重索引文件系統(tǒng))。該lv分布在5個(gè)lun上(條帶化寬度),每寫(xiě)32K會(huì)跳到下一個(gè)LUN上(條帶話深度)。其中vg13在創(chuàng)建時(shí)至少應(yīng)包含5塊磁盤(pán)。創(chuàng)建完這樣的lv后,再在該lv上創(chuàng)建文件系統(tǒng),那么對(duì)該文件系統(tǒng)的讀寫(xiě)操作就經(jīng)過(guò)條帶話處理了。創(chuàng)建語(yǔ)句如下:newfs -F vxfs -o fsFruit /dev/vg09/lvFruit;mount /dev/vg09/ lvFruit /Fruit;2.1.3 陣列選型上的優(yōu)化目前電信OSS系統(tǒng)存儲(chǔ)系統(tǒng)大多采用存儲(chǔ)區(qū)域網(wǎng)(SAN),SAN在本質(zhì)上是一個(gè)巨大的外部RAID系統(tǒng),在多個(gè)不同的系統(tǒng)之間共享存儲(chǔ)(因此有網(wǎng)絡(luò)的概念)。SAN在存儲(chǔ)讀寫(xiě)及數(shù)據(jù)冗余度上主要取決于RAID類型。RAID:廉價(jià)磁盤(pán)冗余陣列,RAID具有兩個(gè)或多個(gè)磁盤(pán)驅(qū)動(dòng)器,并創(chuàng)建一個(gè)磁盤(pán)陣列。對(duì)操作系統(tǒng)而言,這個(gè)陣列看起來(lái)像是一個(gè)邏輯磁盤(pán)。這個(gè)邏輯磁盤(pán)也稱為磁盤(pán)卷,因?yàn)樗且粋€(gè)磁盤(pán)的集合,但對(duì)于用戶、應(yīng)用而言,它們看起來(lái)就像一個(gè)磁盤(pán)。RAID等級(jí):RAID等級(jí)是更加數(shù)據(jù)條的分布方法來(lái)區(qū)別的,數(shù)據(jù)條的不同分布方法提供不同的讀寫(xiě)效率和不同的容錯(cuò)等級(jí)。工程建議: RAID0:是最基本的RAID級(jí)別,它只提供磁盤(pán)分條。沒(méi)有數(shù)據(jù)冗余,類似于在LVM層次上對(duì)lv做的條帶化處理,RAID0可以提供較高的磁盤(pán)讀寫(xiě)速度。由于RAID0沒(méi)有容錯(cuò)能力,RAID0一般用于不太重要的數(shù)據(jù)存儲(chǔ)上,如臨時(shí)文件等。 RAID1:是最基本的容錯(cuò)R A I D級(jí)別。RAID 1,也稱為鏡像(硬件層次上實(shí)現(xiàn)),創(chuàng)建一個(gè)數(shù)據(jù)磁盤(pán)的副本。RAID1在讀寫(xiě)性能上并沒(méi)有優(yōu)勢(shì),但他提供了完整的數(shù)據(jù)冗余集。對(duì)于操作系統(tǒng)的安裝磁盤(pán),數(shù)據(jù)庫(kù)的安裝磁盤(pán)、數(shù)據(jù)庫(kù)控制文件、聯(lián)機(jī)重做日志建議使用RAID1. RAID 5:是使用奇偶校驗(yàn)對(duì)數(shù)據(jù)引入冗余的R A I D容錯(cuò)級(jí)別。當(dāng)數(shù)據(jù)分割為條時(shí),計(jì)算附加的奇偶校驗(yàn)位,并將其存儲(chǔ)在一個(gè)磁盤(pán)的條中。如果一個(gè)磁盤(pán)失效,導(dǎo)致一個(gè)條不能使用時(shí),可以使用奇偶校驗(yàn)位,與存儲(chǔ)在其他磁盤(pán)上的R A I D條上的數(shù)據(jù)一起,重新創(chuàng)建失效磁盤(pán)驅(qū)動(dòng)器不可訪問(wèn)的條上的數(shù)據(jù)。因此, RAID 5陣列能夠容忍陣列中失去一個(gè)磁盤(pán)驅(qū)動(dòng)器的故障。RAID5在讀寫(xiě)性能上做了類似于RAID0的條帶化處理,同時(shí)通過(guò)奇偶校驗(yàn)做到了一定的數(shù)據(jù)容錯(cuò)能力。工程上大多比較重要的數(shù)據(jù)建議使用RAID5.2.3 VMM機(jī)制和優(yōu)化場(chǎng)景VMM的作用是使用虛擬內(nèi)存來(lái)尋址比系統(tǒng)中物理內(nèi)存更大的內(nèi)存,它的基本工作方式是將所有的虛擬內(nèi)存段劃分為若干個(gè)頁(yè)面。在 HP-UNIX 中,每個(gè)頁(yè)面的缺省大小為 4KB。所分配的頁(yè)面可以位于 RAM 或者分頁(yè)空間(虛擬內(nèi)存存儲(chǔ)于磁盤(pán)上)。VMM 還維護(hù)一個(gè)稱為空閑列表 的對(duì)象,該對(duì)象定義為未分配的頁(yè)幀。它們用于處理缺頁(yè)的情況。通常存在少量未分配頁(yè)面(您可以自行配置),VMM 可以使用這些頁(yè)面來(lái)騰出空間并為其重新分配頁(yè)幀??梢允褂?VMM 的頁(yè)面置換算法來(lái)選擇要重新分配頁(yè)幀的虛擬內(nèi)存頁(yè)面。這種分頁(yè)算法可以確定對(duì)當(dāng)前位于 RAM 中的哪些虛擬內(nèi)存頁(yè)面的頁(yè)幀進(jìn)行回收,并放回到空閑列表中。對(duì)于更詳細(xì)的分頁(yè)和頁(yè)面調(diào)度算法這里不做太多描述,可以參考UNIX操作系統(tǒng)相關(guān)資料。對(duì)頁(yè)面的換入換出(進(jìn)程的內(nèi)外存交換)在unix中是0號(hào)進(jìn)程來(lái)實(shí)現(xiàn)的。2.3.1從進(jìn)程的角度分析和優(yōu)化資源占用在同一臺(tái)小型機(jī)上往往運(yùn)行了多套應(yīng)用系統(tǒng),如Oracle,zhjs,idep等,對(duì)于每套應(yīng)用系統(tǒng)往往有自己的安裝用戶。綜合分析一個(gè)用戶的資源使用情況或該用戶下的進(jìn)程的資源使用情況往往是很必要的??梢允褂孟铝蟹椒▉?lái)分析:UNIX95= ps -e -o user,pid,pcpu,vsz,args|grep oracle |awk BEGINsum=0 sum+=$4;ENDprintf oracle t%dn, sum這個(gè)shell匯總了oracle用戶的所有內(nèi)存使用情況(包括物理內(nèi)存和虛擬內(nèi)存合計(jì))。若在多用戶下,分別執(zhí)行每個(gè)用戶的統(tǒng)計(jì)信息則可以從全局上來(lái)分析拿套應(yīng)用系統(tǒng)在資源占用上有優(yōu)化的空間。若對(duì)單個(gè)進(jìn)程的資源占用情況進(jìn)行分析,可以使用下面方法:UNIX95= ps -e -o user,pid,pcpu,vsz,args|grep oracle |more這樣可以分別列出每個(gè)進(jìn)程的資源占用情況Pid:進(jìn)程id號(hào)Vsz:進(jìn)程的內(nèi)存使用情況Pvpu:進(jìn)程cpu使用情況2.3.2從OS的角度分析和優(yōu)化資源占用從操作系統(tǒng)分析是從整機(jī)總體情況分析,分析整機(jī)在內(nèi)存換頁(yè)、vmm等待隊(duì)列等情況。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:運(yùn)行隊(duì)列b:阻塞的進(jìn)程的數(shù)量,可能是等待I/O或資源avm:使用vm的頁(yè)面數(shù)pi:由頁(yè)面交換空間換入的頁(yè)面數(shù)。Po:從物理內(nèi)存換出到交換區(qū)的頁(yè)面數(shù)。Us:用戶時(shí)間。sy:系統(tǒng)時(shí)間。常用的幾個(gè)分析方法是: 如果b值一直居高不下,那么說(shuō)明這時(shí)候阻塞的進(jìn)程很多,可能是I/O出了問(wèn)題。 如果是pi和po的值過(guò)高,說(shuō)明內(nèi)存出現(xiàn)了瓶頸,導(dǎo)致不得不大量使用交換區(qū)。例子中的執(zhí)行結(jié)果來(lái)看該主機(jī)的內(nèi)存遇到了瓶頸,例子采樣于集團(tuán)上海IDEP。 在一般的應(yīng)用系統(tǒng)中us時(shí)間一般都大于sy時(shí)間,如果sy時(shí)間總是大于us時(shí)間,那么說(shuō)明應(yīng)用系統(tǒng)中存在比較多的系統(tǒng)調(diào)用,有優(yōu)化的空間。當(dāng)出現(xiàn)以上問(wèn)題時(shí),往往在借助于上面講述的ps和sar來(lái)分析定位進(jìn)程級(jí)別的問(wèn)題。2.4 I/O子系統(tǒng)和優(yōu)化場(chǎng)景 UNIX的I/O是主存和外部設(shè)備(如磁盤(pán)、網(wǎng)絡(luò)、終端)之間拷貝數(shù)據(jù)的的過(guò)程。I/O分為帶緩存的I/O和不帶緩存的I/O。若使用標(biāo)準(zhǔn)I/O庫(kù)進(jìn)行文件I/O是使用的帶緩存的I/O,終端等字符型設(shè)備的I/O是不帶緩存的I/O(并不是不帶緩存,因?yàn)橐獙?shí)現(xiàn)字符流的順序讀寫(xiě),緩存大小很小,可以看成是不帶緩存的),網(wǎng)絡(luò)I/O對(duì)傳輸層和應(yīng)用層來(lái)說(shuō)是直接從協(xié)議棧中讀取或?qū)懭胄畔?,而?duì)鏈路層來(lái)說(shuō)則是直接從網(wǎng)絡(luò)上來(lái)讀取數(shù)據(jù)幀。無(wú)論是網(wǎng)絡(luò)I/O還是文件I/O都會(huì)使用一類系統(tǒng)資源:文件描述符。2.4.1優(yōu)化應(yīng)用對(duì)文件描述符的使用 文件描述符是一種系統(tǒng)資源,當(dāng)文件描述符過(guò)度使用會(huì)帶來(lái)應(yīng)用的異常甚至導(dǎo)致系統(tǒng)崩潰,對(duì)文件描述符使用不當(dāng)一般可能觸發(fā)到以下幾個(gè)問(wèn)題: 打開(kāi)的文件描述符超過(guò)操作系統(tǒng)的限制,操作系統(tǒng)在的核心參數(shù)nfile定義了能打開(kāi)的最大文件數(shù)。 單個(gè)進(jìn)程打開(kāi)的文件描述符超過(guò)了操作系統(tǒng)對(duì)單進(jìn)程打開(kāi)最大文件數(shù)的限制,操作系統(tǒng)核心參數(shù)maxfiles和maxfiles_lim分別定義了單個(gè)進(jìn)程打開(kāi)的軟文件極限和硬文件極限。 操作系統(tǒng)的nfile、maxfiles、maxfiles_lim定義的很大,應(yīng)用雖然沒(méi)有超過(guò)該限制,但是打開(kāi)的文件描述符過(guò)多,嚴(yán)重影響到系統(tǒng)的運(yùn)行效率。從以上來(lái)看,分析操作系統(tǒng)的文件描述符使用情況對(duì)應(yīng)用的優(yōu)化是很必要的。使用lsof來(lái)分析應(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)輸出、錯(cuò)誤輸出。其他打開(kāi)的文件。前面的數(shù)字表示文件描述符,后面的u表示該文件被打開(kāi)并處于讀取/寫(xiě)入模式TYPE:文件描述符類型。DIR表示目錄、REG表示字符設(shè)備、STR表示流。DEVICE:設(shè)備名SIZE/OFF:文件大小NODE:文件在磁盤(pán)上的節(jié)點(diǎn)NAME:文件名以上這個(gè)命令在分析某個(gè)進(jìn)程對(duì)文件描述符的使用是否合理非常有用,無(wú)論是在網(wǎng)絡(luò)編程或者是做文件操作都能起到事半功倍的作用。2.4.2從INode的角度優(yōu)化應(yīng)用文件系統(tǒng)將磁盤(pán)空間劃分為每1024個(gè)字節(jié)一組,稱為塊(不同的操作系統(tǒng)可能不一樣,在HPunix下可以使用fstyp v Filesystem命令看到塊大小信息)。編號(hào)從0到整個(gè)磁盤(pán)的最大塊數(shù).全部塊可劃分為四個(gè)部分,塊0稱為引導(dǎo)塊,Unix文件不用該塊;塊1稱為專用塊,專用塊含有許多信息,其中有磁盤(pán)大小和全部塊的其它兩部分的大小. 從塊2開(kāi)始是i節(jié)點(diǎn)表,i節(jié)點(diǎn)表中含有i節(jié)點(diǎn),表的塊數(shù)是可變的。i節(jié)點(diǎn)表之后是空閑存儲(chǔ)塊(數(shù)據(jù)存儲(chǔ)塊),可用于存放文件內(nèi)容. i節(jié)點(diǎn)是一個(gè)64字節(jié)長(zhǎng)的表,含有有關(guān)一個(gè)Unix文件的信息,其中有文件大小,文件所有者,文件存取許可方式,以及文件為普通文件,目錄文件還是特別文件等.在i節(jié)點(diǎn)中最重要的一項(xiàng)是磁盤(pán)地址表. 該表中有13個(gè)塊號(hào).前10個(gè)塊號(hào)是文件前10塊的存放地址.這10個(gè)塊號(hào)能給出一個(gè)至多10塊長(zhǎng)的文件的邏輯結(jié)構(gòu),文件將以塊號(hào)在磁盤(pán)地址表中出現(xiàn)的順序 依次取相應(yīng)的塊.當(dāng)文件長(zhǎng)于10塊時(shí)磁盤(pán)地址表中的第十一項(xiàng)給出一個(gè)塊號(hào),這 個(gè)塊號(hào)指出的塊中含有256個(gè)塊號(hào),至此,這種方法滿足了至多長(zhǎng)于266塊的文件(272,384字節(jié)).如果Unix文件大于266塊,磁盤(pán)地址表的第十二項(xiàng)給出一個(gè)塊號(hào), 這個(gè)塊號(hào)指出的塊中含有256個(gè)塊號(hào),這256個(gè)塊號(hào)的每一個(gè)塊號(hào)又指出一塊, 塊中含256個(gè)塊號(hào),這些塊號(hào)才用于取Unix文件的內(nèi)容.磁盤(pán)地址中和第十三項(xiàng)索引 尋址方式與第十二項(xiàng)類似,只是多一級(jí)間接索引.除i節(jié)點(diǎn)外,文件系統(tǒng)中還有一個(gè)非常重要的東西是超級(jí)塊,在超級(jí)塊中保存了如下有用的信息。一是保存了文件系統(tǒng)的大小以及所用酷塊的大小;二是保存了可用數(shù)據(jù)庫(kù)的數(shù)量和部分可以及時(shí)分配的空閑數(shù)據(jù)塊列表;三是最近一次的更新時(shí)間與文件系統(tǒng)的狀態(tài);四是空閑Inode結(jié)點(diǎn)的個(gè)數(shù)和部分可以及時(shí)使用的inode結(jié)點(diǎn)列表。查看文件系統(tǒng)i節(jié)點(diǎn)信息可以用下面命令: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é)點(diǎn)在任何時(shí)候都保持在一個(gè)used較少的情況下比較正常,若文件系統(tǒng)空間free較多,i節(jié)點(diǎn)free不太多了,這時(shí)候應(yīng)該是創(chuàng)建文件系統(tǒng)時(shí)候選擇了錯(cuò)誤的參數(shù)導(dǎo)致。從上面i節(jié)點(diǎn)的結(jié)構(gòu)來(lái)看,應(yīng)用系統(tǒng)還可能遇到以下問(wèn)題是i節(jié)點(diǎn)導(dǎo)致的: 進(jìn)程對(duì)大文件的讀寫(xiě)操作,過(guò)大的文件會(huì)用到3級(jí)索引,3級(jí)索引會(huì)使都寫(xiě)速度顯著降低。 單個(gè)目錄下存放了太多文件,每個(gè)文件都會(huì)有一個(gè)inode與之對(duì)應(yīng),而在單個(gè)目錄下有如此多的文件必然會(huì)增加inode檢索的時(shí)間。對(duì)大文件的讀寫(xiě)可以用lsof來(lái)分析: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)用中打開(kāi)的最大文件是22937600 bytes。對(duì)于怎么從系統(tǒng)角度發(fā)現(xiàn)某個(gè)目錄下有大量文件我還沒(méi)找到好的方法,目前可以從應(yīng)用本身去想辦法分析。2.4.3不均衡IO與vg和lv的關(guān)系均衡I/O一方面可以采用2.2節(jié)中講到的條帶化處理,另一方面如果vg、lv、文件系統(tǒng)沒(méi)有劃分好,同樣會(huì)導(dǎo)致不均衡的I/O。存儲(chǔ)規(guī)劃對(duì)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)的時(shí)間(微秒)如果bps列分布不均,每次采樣的數(shù)據(jù)交換都發(fā)生在固定的幾塊盤(pán)上,那么說(shuō)明存儲(chǔ)規(guī)劃有問(wèn)題。遇到這種情況使用以下的分析步驟來(lái)分析:首先找到這些盤(pán)是那個(gè)vg的,然后看這個(gè)vg下面創(chuàng)建了哪些lv,各個(gè)lv對(duì)應(yīng)哪些不同的文件系統(tǒng)。找到對(duì)應(yīng)的文件系統(tǒng)就比較容易分析出為什么在這個(gè)文件系統(tǒng)上有如此大的I/O量,再權(quán)衡是否有必要拆分這個(gè)文件系統(tǒng),將不同的功能放到不同的文件系統(tǒng)上。2.5 Unix網(wǎng)絡(luò)體系及優(yōu)化場(chǎng)景Unix的網(wǎng)絡(luò)結(jié)構(gòu)分為5個(gè)部分,包括硬件/數(shù)據(jù)鏈路層、IP層、INET Socket層、BSD Socket層,及應(yīng)用層。其中內(nèi)核中包含了4個(gè)層次,分別是:1) 硬件/數(shù)據(jù)鏈路層:包括設(shè)備驅(qū)動(dòng)程序和硬件信息傳輸控制。2) IP層:是TCP/IP協(xié)議中的網(wǎng)絡(luò)互聯(lián)層實(shí)現(xiàn)的內(nèi)容。3) INET Socket層:實(shí)現(xiàn)比IP層高一級(jí)的管理,實(shí)現(xiàn)IP分組排序、網(wǎng)絡(luò)效率控制等功能。4) BSD Socket層:包含BSD Socket編程接口內(nèi)容。2.5.1過(guò)多的TIME_WAIT端口TIME_WAIT端口狀態(tài)是TCP/IP連接斷開(kāi)的四次握手的最后一步,其中四次握手的過(guò)程如下:1.HOST1上的應(yīng)用程序關(guān)閉己方的連接導(dǎo)致TCP發(fā)送一個(gè)FIN消息給HOST2。2.HOST2發(fā)送一個(gè)確認(rèn)消息給HOST1,并且HOST2把FIN作為EOF遞交給HOST2上的應(yīng)用程序。3.一段時(shí)間過(guò)后,HOST2上的應(yīng)用程序關(guān)閉它那邊的連接,引發(fā)一個(gè)FIN消息給HOST1。4.HOST1給HOST2發(fā)送一個(gè)確認(rèn)消息,然后HOST2關(guān)閉連接并釋放資源,然而,HOST1卻沒(méi)有關(guān)閉連接,而是進(jìn)入了TIME_WAIT狀態(tài),并為兩個(gè)最大段生存時(shí)間(2MSL)保留在此狀態(tài).設(shè)計(jì)TIME_WAIT狀態(tài)的目的有二:1.因?yàn)樵诘谒牟降臅r(shí)候,HOST1發(fā)送的ACK可能丟失并導(dǎo)致HOST2重新發(fā)送FIN消息,TIME_WAIT維護(hù)連接狀態(tài). 如果執(zhí)行主動(dòng)關(guān)閉的一方HOST1 不進(jìn)入到TIME_WAIT狀態(tài)就關(guān)閉連接那會(huì)發(fā)生什么呢?當(dāng)重傳的FIN消息到達(dá)時(shí),因?yàn)門(mén)CP已經(jīng)不再有連接的信息了,所以就用RST(重新啟動(dòng))消息應(yīng)答,導(dǎo)致HOST2進(jìn)入錯(cuò)誤的狀態(tài)而不是有序終止?fàn)顟B(tài),如果發(fā)送最后ACK消息的一方處于TIME_WAIT狀態(tài)并仍然記錄著連接的信息,它就可以正確的響應(yīng)對(duì)等方HOST2的FIN消息了.2.TIME_WAIT為連接中”離群的段”提供從網(wǎng)絡(luò)中消失的時(shí)間.考慮一下,如果延遲或者重傳段在連接關(guān)閉后到達(dá)時(shí)會(huì)發(fā)生什么呢?通常情況下,因?yàn)門(mén)CP僅僅丟棄該數(shù)據(jù)并響應(yīng)RST消息,所以這不會(huì)造成任何問(wèn)題。當(dāng)RST消息到達(dá)發(fā)出延時(shí)段的 主機(jī)時(shí),因?yàn)樵撝鳈C(jī)也沒(méi)有記錄連接的任何信息,所以它也丟棄該段。然而,如果兩個(gè)相同主機(jī)之間又建立了一個(gè)具有相同端口號(hào)的新連接,那么離群的段就可能被看成是新連接的,如果離群的段中數(shù)據(jù)的任何序列號(hào)恰恰在新連接的當(dāng)前接收窗口中,數(shù)據(jù)就會(huì)被重新接收,其結(jié)果就是破壞新連接。根據(jù)以上分析看TIME_WAIT狀態(tài)本身是為連接斷開(kāi)的“離群的段”和可能丟失的ACK設(shè)計(jì)的,狀態(tài)本身是合理的,但如果應(yīng)用程序頻繁的建立并斷開(kāi)連接且可用的端口范圍有限,那么這時(shí)候會(huì)導(dǎo)致無(wú)端口可用,會(huì)導(dǎo)致新的連接失敗。DataExch:/idep/while 1 do netstat -a|grep TI
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理現(xiàn)代化的挑戰(zhàn)與機(jī)遇試題及答案
- 行政管理本科考試的反饋機(jī)制試題及答案
- 2025年市政學(xué)課程考查試題及答案
- 自考行政管理本科復(fù)習(xí)心得試題及答案分享
- 心得分享2025年建筑工程考試試題及答案
- 農(nóng)村買(mǎi)賣(mài)小轎車(chē)合同范例
- 2025年行政管理學(xué)新需求試題及答案
- 買(mǎi)山合同范例
- 2025年行政管理學(xué)綜合試題及答案
- 行政管理與市政學(xué)的社會(huì)價(jià)值試題及答案
- 2025-2030全球及中國(guó)COB發(fā)光二極管行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 群眾文化知識(shí)試題及答案
- 2025年-重慶市建筑安全員B證考試題庫(kù)附答案
- 客情維護(hù)培訓(xùn)
- 結(jié)腸癌科普知識(shí)
- 學(xué)校校園膳食監(jiān)督家長(zhǎng)委員會(huì)履職承諾協(xié)議書(shū)
- 環(huán)保輿情防范預(yù)案
- 2025年甘肅公務(wù)員省考《行測(cè)》真題(含答案)
- JGJT322-2013混凝土中氯離子含量檢測(cè)技術(shù)規(guī)程標(biāo)準(zhǔn)
- 具身智能項(xiàng)目建設(shè)規(guī)劃方案(參考模板)
- 2025年福建廈門(mén)湖里區(qū)市場(chǎng)監(jiān)督管理局招聘協(xié)管員93人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
評(píng)論
0/150
提交評(píng)論