MYSQL网站制作之ORACLE功能诊断D进修statspack条记(四...
你碰到的问题可能已经在社区中被别的人已经问过,即使没有MySQL学习教程,你也可以提出问题或通过Google来搜索答案。社区的相关负责人士:“MySQL社区是活跃、友好和内容渊博的。”oracle|条记|服务器|统计|功能ORACLE功能诊断D进修statspack条记(四)[扩大statspack搜集服务器统计]
刘颖博
工夫:2004-3-22
mail:liuyingbo@126.com,请斧正
转载请说明出处及作者
申明:因为STATSPACK其实不能猎取周全剖析功能成绩所必要的一切信息,以是必要扩大其搜集服务器的统计信息。(本文情况REDHAT Linux7.2)
VMSTAT先容
经由过程STATSPACK搜集服务器信息,次要经由过程搜集VMSTAT的信息来展示服务器情况。VMSTAT工具是最多见的UNIX监控工具,能够展示给准时间距离的服务器的形态值。
一样平常VMSTAT工具的利用是经由过程两个数字参数来完成的,第一个参数是采样的工夫距离数,单元是秒,第二个参数是采样的次数。如:
$vmstat12
procsmemoryswapiosystem CPU
rbwswpdfreebuffcache sisobiboincsussyid
100027184418605225585200261021000100
000027184418605225585200001041100100
(注:今朝体系几近余暇,而且分歧操纵体系VMSTAT输入内容有所分歧)
今朝说来,关于服务器监控有效处的器度次要有:
r(运转行列)
pi(页导进)
us(用户CPU)
sy(体系CPU)
id(余暇)
经由过程VMSTAT辨认CPU瓶颈
r(运转行列)展现了正在实行和守候CPU资本的义务个数。当这个值凌驾了CPU数量,就会呈现CPU瓶颈了。
取得CPU个数的命令(LINUX情况):
cat/proc/cpuinfo|grepprocessor|wcCl
当r值凌驾了CPU个数,就会呈现CPU瓶颈,办理举措大致几种:
1.最复杂的就是增添CPU个数
2.经由过程调剂义务实行工夫,如年夜义务放到体系不忙碌的情形下举行实行,进尔均衡体系义务
3.调剂已有义务的优先级
经由过程VMSTAT辨认CPU满负荷
起首必要声明一点的是,vmstat中CPU的器度是百分比的。当us+sy的值靠近100的时分,暗示CPU正在靠近满负荷事情。但要注重的是,CPU满负荷事情其实不能申明甚么,UNIX老是试图要CPU尽量的忙碌,使得义务的吞吐量最年夜化。独一可以断定CPU瓶颈的仍是r(运转行列)的值。
经由过程VMSTAT辨认RAM瓶颈
数据库服务器都只要无限的RAM,呈现内存争用征象是Oracle的罕见成绩。
起首观察RAM的数目,命令以下(LINUX情况):
#free
totalusedfreesharedbufferscached
Mem:1027348873312154036185736187496293964
-/+buffers/cache:391852635496
Swap:209644002096440
固然可使用top等其他命令来显现RAM。
当内存的需求年夜于RAM的数目,服务器启动了假造内存机制,经由过程假造内存,能够将RAM段移到SWAPDISK的特别磁盘段上,如许会呈现假造内存的页导出和页导进征象,页导出其实不能申明RAM瓶颈,假造内存体系常常会对内存段举行页导出,但页导进操纵就标明了服务器必要更多的内存了,页导进必要从SWAPDISK大将内存段复制回RAM,招致服务器速率变慢。
办理的举措有几种:
1.最复杂的,加年夜RAM
2.改小SGA,使得对RAM需求削减
3.削减RAM的需求(如:削减PGA)
我们基础的懂得了VMSTAT事情,上面是STATSPACK经由过程vmstat统计搜集服务器功能数据。
STATSPACK经由过程vmstat搜集服务器信息
起首在perfstat用户下建一个存储服务器信息的表:如
建表:
createtablestats$vmstat
(
start_datedate,--体系工夫
durationdate,--工夫距离
server_namevarchar2(20),--服务器称号
runque_waitsnumber,--运转行列数据
page_innumber,--页导进数据
page_outnumber,--页导出数据
user_cpunumber,--用户cpu数据
system_cpunumber,--体系cpu数据
idle_cpunumber,--余暇cpu数据
wait_cpunumberC守候cpu数据(只是aix存在)
)
tablespaceperfstat;
然后,经由过程UNIX/LINUX的shell酿成,使用vmstat的了局来猎取响应的服务器信息,而且寄存到表中。
关于shell编程,大概已超越本文内容,而且老实的说,自己并没有shell编程的履历,但愿那位兄台能够完成shell编程的内容,并光驾mail给我共享一下,谢了先!!
附:
LINUX上VMSTAT的匡助手册:(manvmstat的了局)
VMSTAT(8)LinuxAdministratorsManualVMSTAT(8)
NAME
vmstat-Reportvirtualmemorystatistics
SYNOPSIS
vmstat[-n]]
vmstat[-V]
DESCRIPTION
vmstatreportsinformationaboutprocesses,memory,paging,blockIO,traps,andCPUactivity.
Thefirstreportproducedgivesaveragessincethelastreboot.Additionalreportsgiveinformationonasam-
plingperiodoflengthdelay.Theprocessandmemoryreportsareinstantaneousineithercase.
Options
The-nswitchcausestheheadertobedisplayedonlyonceratherthanperiodically.
delayisthedelaybetweenupdatesinseconds.Ifnodelayisspecified,onlyonereportisprintedwiththe
averagevaluessinceboot.
countisthenumberofupdates.Ifnocountisspecifiedanddelayisdefined,countdefaultstoinfinity.
The-Vswitchresultsindisplayingversioninformation.
FIELDDESCRIPTIONS
Procs
r:Thenumberofprocesseswaitingforruntime.
b:Thenumberofprocessesinuninterruptablesleep.
w:Thenumberofprocessesswappedoutbutotherwiserunnable.This
fieldiscalculated,butLinuxneverdesperationswaps.
Memory
swpd:theamountofvirtualmemoryused(kB).
free:theamountofidlememory(kB).
buff:theamountofmemoryusedasbuffers(kB).
Swap
si:Amountofmemoryswappedinfromdisk(kB/s).
so:Amountofmemoryswappedtodisk(kB/s).
IO
bi:Blockssenttoablockdevice(blocks/s).
bo:Blocksreceivedfromablockdevice(blocks/s).
System
in:Thenumberofinterruptspersecond,includingtheclock.
cs:Thenumberofcontextswitchespersecond.
:CPU
ThesearepercentagesoftotalCPUtime.
us:usertime
sy:systemtime
id:idletime
NOTES
vmstatdoesnotrequirespecialpermissions.
Thesereportsareintendedtohelpidentifysystembottlenecks.Linuxvmstatdoesnotcountitselfasarun-
ningprocess.
Alllinuxblocksarecurrently1k,exceptforCD-ROMblockswhichare2k.
FILES
/proc/meminfo
/proc/stat
/proc/*/stat
SEEALSO
ps(1),top(1),free(1)
BUGS
Doesnottabulatetheblockioperdeviceorcountthenumberofsystemcalls.
AUTHOR
WrittenbyHenryWare<al172@yfn.ysu.edu>.
ThroatwobblerGinkgoLabs27July1994VMSTAT(8)
(待续)
……………………………………………………………………………………
参考
DonaldK.Burleson《ORACLEHIGH-PERFORMANCETUNINGWITHSTATSPACK》
你碰到的问题可能已经在社区中被别的人已经问过,即使没有MySQL学习教程,你也可以提出问题或通过Google来搜索答案。社区的相关负责人士:“MySQL社区是活跃、友好和内容渊博的。” 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的 每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。 学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了! 备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。 一个是把SQL语句写到客户端,可以使用DataSet进行加工; 每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。 原来公司用过MYSQL自己也只是建个表写个SQL
页:
[1]