Linux操作系統(tǒng)項(xiàng)目化教程基于RHEL 8.2-CentOS 8.2-電子課件 任務(wù)6-v1_第1頁(yè)
Linux操作系統(tǒng)項(xiàng)目化教程基于RHEL 8.2-CentOS 8.2-電子課件 任務(wù)6-v1_第2頁(yè)
Linux操作系統(tǒng)項(xiàng)目化教程基于RHEL 8.2-CentOS 8.2-電子課件 任務(wù)6-v1_第3頁(yè)
Linux操作系統(tǒng)項(xiàng)目化教程基于RHEL 8.2-CentOS 8.2-電子課件 任務(wù)6-v1_第4頁(yè)
Linux操作系統(tǒng)項(xiàng)目化教程基于RHEL 8.2-CentOS 8.2-電子課件 任務(wù)6-v1_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

6任務(wù)六

更上一層樓

--服務(wù)器運(yùn)行監(jiān)控6.1任務(wù)導(dǎo)入任務(wù)概述、任務(wù)分析、任務(wù)目標(biāo)6.3任務(wù)實(shí)施項(xiàng)目實(shí)施步驟1、項(xiàng)目實(shí)施步驟26.2任務(wù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)1、知識(shí)點(diǎn)26.4任務(wù)思考雙創(chuàng)體現(xiàn)任務(wù)六每天收獲小進(jìn)步--創(chuàng)建用戶環(huán)境6.5任務(wù)拓展知識(shí)技術(shù)拓展1、技術(shù)拓展26.6任務(wù)小結(jié)本任務(wù)小結(jié)6.1任務(wù)導(dǎo)入

6.1.1任務(wù)概述

Linux服務(wù)器運(yùn)行狀態(tài)需要進(jìn)行定期或遇到故障時(shí)需要進(jìn)行監(jiān)控,找出問(wèn)題所在,以便進(jìn)行解決。需要掌握常用的監(jiān)控命令,并進(jìn)行運(yùn)用和觀察、分析。6.1.2任務(wù)分析根據(jù)任務(wù)概述,我們需要考慮:1、Linux服務(wù)器運(yùn)行狀態(tài)主要包括哪些方面?2、如何使用命令查詢服務(wù)器運(yùn)行?3、如何設(shè)置命令參數(shù)?4、如何分析運(yùn)行結(jié)果?5、如何管理運(yùn)行的進(jìn)程?6.1.3任務(wù)目標(biāo)根據(jù)任務(wù)分析,我們需要掌握如下知識(shí)、技能、思政、雙創(chuàng)、課證目標(biāo)。(1)了解用戶和組群配置文件。(知識(shí))(2)熟練掌握Linux下用戶的創(chuàng)建與管理的方法。(技能)(3)熟練掌握Linux下組群的創(chuàng)建與管理的方法。(技能)(4)熟悉用戶賬戶管理器的使用方法。(技能)(5)系統(tǒng)管理員要求具備對(duì)用戶信息嚴(yán)格管理的職業(yè)素養(yǎng)(思政)(6)根據(jù)樂(lè)購(gòu)網(wǎng)站Mysql數(shù)據(jù)庫(kù)服務(wù)器所需的用戶環(huán)境設(shè)計(jì)其他服務(wù)器所需用戶環(huán)境(雙創(chuàng))(7)拓展1+X云計(jì)算運(yùn)維與開(kāi)發(fā)考證及紅帽RHCSA認(rèn)證知識(shí)技能(課證)6.2任務(wù)知識(shí)準(zhǔn)備6.2.1任務(wù)1:了解服務(wù)器的運(yùn)行狀態(tài)Linux操作系統(tǒng)中常需運(yùn)行多任務(wù)多進(jìn)程。為了解Linux運(yùn)行情況,需要查看和監(jiān)控各進(jìn)程及軟硬件運(yùn)行狀態(tài)。要保證Linux服務(wù)器系統(tǒng)的高可用性,需實(shí)時(shí)了解服務(wù)器的硬件、操作系統(tǒng)、應(yīng)用服務(wù)等的運(yùn)行狀況。在Linux系統(tǒng)環(huán)境的使用與開(kāi)發(fā)過(guò)程中,我們常需評(píng)估系統(tǒng)性能,尤其在性能測(cè)試過(guò)程中,我們需要通過(guò)系統(tǒng)資源的監(jiān)控,從而分析定位系統(tǒng)的性能瓶頸??蓮囊韵戮S度來(lái)評(píng)估系統(tǒng)的性能好壞:CPU利用率及負(fù)載、內(nèi)存利用率、磁盤(pán)I/O利用率、網(wǎng)絡(luò)利用率等。Linux監(jiān)控的對(duì)象包括:硬件監(jiān)控、操作系統(tǒng)監(jiān)控。硬件監(jiān)控:(1)服務(wù)器:如電源,風(fēng)扇,磁盤(pán),CPU等,可以使用IPMI監(jiān)控,在Linux下安裝IPMITOOL。不同的服務(wù)器廠商都在服務(wù)器上配有遠(yuǎn)程控制卡BMC:如DELL(iDRAC),IBM(IMM),HP(ILO)。Linux下需安裝:#yuminstall-yOpenIPMIipmitool這2個(gè)工具可以監(jiān)控。(2)網(wǎng)絡(luò)設(shè)備:交換機(jī),防火墻,路由器等,使用SNMP進(jìn)行監(jiān)控。在被監(jiān)控的設(shè)備上開(kāi)啟SNMP代理,可以通過(guò)工具進(jìn)行獲取數(shù)據(jù),如ZABBIX。操作系統(tǒng)監(jiān)控:安裝sysstat工具,包括iostat、vmstat、sar、mpstat、nfsiostat、pidstat(安裝方法:yuminstall-ysysstat

#rpm-qlsysstat)??杀O(jiān)控CPU(CPU調(diào)度上下文切換,運(yùn)行隊(duì)列負(fù)載,CPU使用率);確定服務(wù)類(lèi)型:IO密集型(如:數(shù)據(jù)庫(kù)),CPU密集型(如:WEB)。

命令功能應(yīng)用用法舉例ps最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令psauxtop實(shí)時(shí)排序顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況topvmstat對(duì)系統(tǒng)的整體情況進(jìn)行統(tǒng)計(jì),包括內(nèi)核進(jìn)程、虛擬內(nèi)存、磁盤(pán)、陷阱和CPU活動(dòng)的統(tǒng)計(jì)信息vmstat2100free查看內(nèi)存使用情況,包括物理內(nèi)存和虛擬內(nèi)存free-h或free-mnetstat檢驗(yàn)本機(jī)各端口的網(wǎng)絡(luò)連接情況,用于顯示與IP、TCP、UDP和ICMP協(xié)議相關(guān)的統(tǒng)計(jì)數(shù)據(jù)netstat-admesg主要用來(lái)顯示內(nèi)核信息。使用dmesg可以有效診斷機(jī)器硬件故障或者添加硬件出現(xiàn)的問(wèn)題。dmesgtcpdump用于捕捉或者過(guò)濾網(wǎng)絡(luò)上指定接口上接收或者傳輸?shù)腡CP/IP包tcpdump-ieth0-c3uptime用于查看服務(wù)器運(yùn)行了多長(zhǎng)時(shí)間以及有多少個(gè)用戶登錄,快速獲知服務(wù)器的負(fù)荷情況uptimeiostatiostat主要用于監(jiān)控系統(tǒng)設(shè)備的IO負(fù)載情況iostat-d36.2.2任務(wù)2:系統(tǒng)進(jìn)程管理和性能監(jiān)控進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng),它是進(jìn)行系統(tǒng)資源分配、調(diào)度的一個(gè)獨(dú)立單位。進(jìn)程運(yùn)行時(shí)有5大特征:動(dòng)態(tài)性、并發(fā)性、異步性、獨(dú)立性、結(jié)構(gòu)性。每個(gè)進(jìn)程都有其相對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)及獨(dú)立表項(xiàng)。系統(tǒng)進(jìn)程管理和性能監(jiān)控主要命令有:ps、kill、vmstat、top。要查看系統(tǒng)中執(zhí)行的進(jìn)程,常用ps(processstatus)命令。要?jiǎng)h除某些進(jìn)程時(shí),除了使用top命令的K鍵功能外,最簡(jiǎn)單的方法是在文本模式下執(zhí)行kill命令將進(jìn)程刪除,通常它可以搭配ps命令使用。vmstat用來(lái)查看系統(tǒng)和磁盤(pán)狀態(tài),適用于所有主要的類(lèi)unix系統(tǒng)(Linux/unix/FreeBSD/Solaris)。top:命令自動(dòng)排序進(jìn)程,按照占用系統(tǒng)資源的多少排序,包括內(nèi)存,交換分區(qū),和CPU的使用率等。如果想終止top命令按Q鍵。1.psLinux中的ps命令是ProcessStatus的縮寫(xiě)。ps命令用來(lái)列出系統(tǒng)中當(dāng)前運(yùn)行的那些進(jìn)程。ps命令列出的是當(dāng)前那些進(jìn)程的快照,就是執(zhí)行ps命令的那個(gè)時(shí)刻的那些進(jìn)程,如果想要?jiǎng)討B(tài)的顯示進(jìn)程信息,就可以使用top命令。要對(duì)進(jìn)程進(jìn)行監(jiān)測(cè)和控制,首先必須要了解當(dāng)前進(jìn)程的情況,也就是需要查看當(dāng)前進(jìn)程,而ps命令就是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令。使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒(méi)有僵死、哪些進(jìn)程占用了過(guò)多的資源等等??傊蟛糠中畔⒍际强梢酝ㄟ^(guò)執(zhí)行該命令得到的。語(yǔ)法:[root@localhost~]#ps--helpUsage:ps[options]Formoredetailsseeps(1).命令參數(shù):a顯示所有進(jìn)程-a顯示同一終端下的所有程序-A顯示所有進(jìn)程c顯示進(jìn)程的真實(shí)名稱-N反向選擇-e等于“-A”e顯示環(huán)境變量f顯示程序間的關(guān)系-H顯示樹(shù)狀結(jié)構(gòu)r顯示當(dāng)前終端的進(jìn)程T顯示當(dāng)前終端的所有程序u指定用戶的所有進(jìn)程-au顯示較詳細(xì)的資訊-aux顯示所有包含其他使用者的行程-C<命令>列出指定命令的狀況--lines<行數(shù)>每頁(yè)顯示的行數(shù)--width<字符數(shù)>每頁(yè)顯示的字符數(shù)--help顯示幫助信息--version顯示版本顯示可用圖形方式查看進(jìn)程狀態(tài),也可用ps命令靈活地查詢進(jìn)程狀態(tài)?!纠?】以圖形方式查看查看進(jìn)程[root@localhost~]#gnome-system-monitor【例2】ps常用命令格式[root@localhostsystem]#psaux輸出:USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDroot10.00.32561967176?Ss8月180:08/usr/lib/sysroot20.00.000?S8月180:00[kthreadd]root30.00.000?I<8月180:00[rcu_gp]root40.00.000?I<8月180:00[rcu_par_gp]root60.00.000?I<8月180:00[kworker/0:0root80.00.000?I<8月180:00[mm_percpu_wroot90.00.000?S8月180:02[ksoftirqd/0root100.00.000?R8月180:03[rcu_sched]root110.00.000?S8月180:00[migration/0root120.00.000?S8月180:00[watchdog/0]root130.00.000?S8月180:00[cpuhp/0]root150.00.000?S8月180:00[kdevtmpfs]root160.00.000?I<8月180:00[netns]root170.00.000?S8月180:00[kauditd]root180.00.000?S8月180:00[khungtaskd]root190.00.000?S8月180:00[oom_reaper]root200.00.000?I<8月180:00[writeback]root210.00.000?S8月180:02[kcompactd0]root220.00.000?SN8月180:00[ksmd]root230.00.000?SN8月180:01[khugepaged]root240.00.000?I<8月180:00[crypto]root250.00.000?I<8月180:00[kintegrityd進(jìn)程信息各列說(shuō)明:USER進(jìn)程所屬用戶PID進(jìn)程ID%CPU進(jìn)程占用CPU百分比%MEM進(jìn)程占用內(nèi)存百分比VSZ虛擬內(nèi)存占用大小單位:kb(killobytes)RSS實(shí)際內(nèi)存占用大小單位:kb(killobytes)TTY終端類(lèi)型STAT進(jìn)程狀態(tài)START進(jìn)程啟動(dòng)時(shí)刻TIME進(jìn)程運(yùn)行時(shí)長(zhǎng)COMMAND啟動(dòng)進(jìn)程的命令其中STAT狀態(tài)位常見(jiàn)的狀態(tài)字符有D

//無(wú)法中斷的休眠狀態(tài)(通常IO的進(jìn)程);

R

//正在運(yùn)行可中在隊(duì)列中可過(guò)行的;

S

//處于休眠狀態(tài);

T

//停止或被追蹤;

W

//進(jìn)入內(nèi)存交換(從內(nèi)核2.6開(kāi)始無(wú)效);

X

//死掉的進(jìn)程(基本很少見(jiàn));

Z

//僵尸進(jìn)程;

<

//優(yōu)先級(jí)高的進(jìn)程

N

//優(yōu)先級(jí)較低的進(jìn)程

L

//有些頁(yè)被鎖進(jìn)內(nèi)存;

s

//進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);

l

//多線程,克隆線程(使用CLONE_THREAD,類(lèi)似NPTLpthreads);

+

//位于后臺(tái)的進(jìn)程組;顯示所有進(jìn)程信息,連同命令行:命令:[root@localhost~]#ps-ef輸出:UIDPIDPPIDCSTIMETTYTIMECMDroot1008月18?00:00:08/usr/lib/systemd/systemd--sroot2008月18?00:00:00[kthreadd]root3208月18?00:00:00[rcu_gp]root4208月18?00:00:00[rcu_par_gp]root6208月18?00:00:00[kworker/0:0H-kblockd]root8208月18?00:00:00[mm_percpu_wq]root9208月18?00:00:02[ksoftirqd/0]root10208月18?00:00:03[rcu_sched]root11208月18?00:00:00[migration/0]root12208月18?00:00:00[watchdog/0]root13208月18?00:00:00[cpuhp/0]root15208月18?00:00:00[kdevtmpfs]root16208月18?00:00:00[netns]root17208月18?00:00:00[kauditd]root18208月18?00:00:00[khungtaskd]root19208月18?00:00:00[oom_reaper]root20208月18?00:00:00[writeback]root21208月18?00:00:02[kcompactd0]root22208月18?00:00:00[ksmd]root23208月18?00:00:01[khugepaged]root24208月18?00:00:00[crypto]root25208月18?00:00:00[kintegrityd]root26208月18?00:00:00[kblockd]root27208月18?00:00:00[tpm_dev_wq]root28208月18?00:00:00[md]root29208月18?00:00:00[edac-poller]【例3】ps

與grep

常用組合用法,查找特定進(jìn)程命令:[root@localhost~]#ps-ef|grepbashroot1062108月18?00:00:00/bin/bash/usr/sbin/ksmtunedroot2156121556006:36pts/000:00:00bashroot2926821561013:29pts/000:00:00grep--color=autobash【例4】將目前用戶本次登錄的PID與相關(guān)信息列示出來(lái)命令:[root@localhost~]#ps-l輸出:FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD4S021561215560800-7011-pts/000:00:00bash0R029301215610800-11409-pts/000:00:00ps說(shuō)明:各相關(guān)信息的意義:F

代表這個(gè)進(jìn)程的旗標(biāo)

(flag),

4

代表使用者為

super

userS

代表這個(gè)進(jìn)程的狀態(tài)

(STAT),關(guān)于各

STAT

的意義將在內(nèi)文介紹UID

進(jìn)程的用戶IDPID

進(jìn)程ID

PPID父進(jìn)程IDC

CPU使用的資源百分比PRI

進(jìn)程優(yōu)先級(jí)NI

進(jìn)程優(yōu)先級(jí)的調(diào)整ADDR

進(jìn)程在內(nèi)存的地址,一般顯示"-"SZ

使用內(nèi)存的大小WCHAN

目前這個(gè)程序是否正在運(yùn)作當(dāng)中,若為-表示正在運(yùn)作TTY

登入者的終端機(jī)位置TIME

使用CPU時(shí)間。CMD

啟動(dòng)進(jìn)程的命令2.KillLinuxkill命令用于刪除執(zhí)行中的程序或進(jìn)程。kill可將指定的信息送至程序。預(yù)設(shè)的信息為SIGTERM(15),可將指定程序終止。若仍無(wú)法終止該程序,可使用SIGKILL(9)信息嘗試強(qiáng)制刪除程序。程序或工作的編號(hào)可利用ps指令或jobs指令查看。通過(guò)帶help參數(shù),查看使用語(yǔ)法如下:[root@localhost~]#kill--helpkill:kill[-s信號(hào)聲明|-n信號(hào)編號(hào)|-信號(hào)聲明]進(jìn)程號(hào)|任務(wù)聲明...或kill-l[信號(hào)聲明]Sendasignaltoajob.

SendtheprocessesidentifiedbyPIDorJOBSPECthesignalnamedbySIGSPECorSIGNUM.IfneitherSIGSPECnorSIGNUMispresent,thenSIGTERMisassumed.Options:-ssig SIGisasignalname-nsig SIGisasignalnumber-l listthesignalnames;ifargumentsfollow`-l'theyare assumedtobesignalnumbersforwhichnamesshouldbelisted-L synonymfor-l

Killisashellbuiltinfortworeasons:itallowsjobIDstobeusedinsteadofprocessIDs,andallowsprocessestobekilledifthelimitonprocessesthatyoucancreateisreached.

ExitStatus:Returnssuccessunlessaninvalidoptionisgivenoranerroroccurs.參數(shù)說(shuō)明:-l<信息編號(hào)>若不加<信息編號(hào)>選項(xiàng),則-l參數(shù)會(huì)列出全部的信息名稱。-s<信息名稱或編號(hào)>指定要送出的信息。[程序][程序]可以是程序的PID或是PGID,也可以是工作編號(hào)。使用kill-l命令列出所有可用信號(hào)。最常用的信號(hào)是:1(HUP):重新加載進(jìn)程。9(KILL):殺死一個(gè)進(jìn)程。15(TERM):正常停止一個(gè)進(jìn)程。kill-9xxx強(qiáng)制殺死PID為XXX的進(jìn)程。有十幾種控制進(jìn)程的方法,下面是一些常用的方法:kill-STOP[pid]發(fā)送SIGSTOP(17,19,23)停止一個(gè)進(jìn)程,而并不消滅這個(gè)進(jìn)程。kill-CONT[pid]發(fā)送SIGCONT(19,18,25)重新開(kāi)始一個(gè)停止的進(jìn)程。kill-KILL[pid]發(fā)送SIGKILL(9)強(qiáng)迫進(jìn)程立即停止,并且不實(shí)施清理操作。kill-9-1終止你擁有的全部進(jìn)程。SIGKILL和SIGSTOP信號(hào)不能被捕捉、封鎖或者忽略,但是,其它的信號(hào)可以。實(shí)例:[root@localhost~]#kill215613.vmstat對(duì)系統(tǒng)的整體情況進(jìn)行統(tǒng)計(jì),包括內(nèi)核進(jìn)程、虛擬內(nèi)存、磁盤(pán)、陷阱和CPU活動(dòng)的統(tǒng)計(jì)信息。通過(guò)帶help參數(shù),查看vmstat使用語(yǔ)法:[root@localhost~]#vmstat--helpUsage:vmstat[options][delay[count]]Options:-a,--activeactive/inactivememory-f,--forksnumberofforkssinceboot-m,--slabsslabinfo-n,--one-headerdonotredisplayheader-s,--statseventcounterstatistics-d,--diskdiskstatistics-D,--disk-sumsummarizediskstatistics-p,--partition<dev>partitionspecificstatistics-S,--unit<char>definedisplayunit-w,--widewideoutput-t,--timestampshowtimestamp-h,--helpdisplaythishelpandexit-V,--versionoutputversioninformationandexitFormoredetailsseevmstat(8).【例1】基本用法示例每X秒執(zhí)行vmstat,共執(zhí)行N次下面命令將會(huì)每2秒中執(zhí)行一次vmstat,執(zhí)行6次后自動(dòng)停止執(zhí)行。[root@localhost~]#vmstat26procsmemoryswap--io-system--cpurbswpdfreebuffcachesisobiboincsussyidwast20154112736282425931224930070982151297100015411273568242593120000892161199000015411273568242593120000397680139600001541127356824259312000051494813960000154112733882425931200003496791495000015411273208242593400000437800349400說(shuō)明:各列信息說(shuō)明r:當(dāng)前運(yùn)行隊(duì)列中線程的數(shù)目,代表線程處于可運(yùn)行狀態(tài),但CPU還未能執(zhí)行.,這個(gè)值可以作為判斷CPU是否繁忙的一個(gè)指標(biāo);當(dāng)這個(gè)值超過(guò)了CPU數(shù)目,就會(huì)出現(xiàn)CPU瓶頸了;這個(gè)我們可以結(jié)合top命令的負(fù)載值同步評(píng)估系統(tǒng)性能;b:等待IO的進(jìn)程數(shù)量;如果該值一直都很大,說(shuō)明IO比較繁忙,處理較慢;memory(內(nèi)存)swpd:虛擬內(nèi)存已使用的大??;如果swpd的值不為0,但是si,so的值長(zhǎng)期為0,這種情況不會(huì)影響系統(tǒng)性能;free:空閑的物理內(nèi)存的大小;buff:用作緩沖的內(nèi)存大??;cache:用作緩存的內(nèi)存大?。蝗绻鹀ache的值大的時(shí)候,說(shuō)明cache處的文件數(shù)多,如果頻繁訪問(wèn)到的文件都能被cache處,那么磁盤(pán)的讀IObi會(huì)非常??;swap(交換空間,單位:KB);內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長(zhǎng)期大于0時(shí),系統(tǒng)性能會(huì)受到影響,磁盤(pán)IO和CPU資源都會(huì)被消耗。有時(shí)我們看到空閑內(nèi)存(free)很少的或接近于0時(shí),就認(rèn)為內(nèi)存不夠用了,不能光看這一點(diǎn),還要結(jié)合si和so,如果free很少,但是si和so也很少(大多時(shí)候是0),那么不用擔(dān)心,系統(tǒng)性能這時(shí)不會(huì)受到影響的;si:每秒從交換區(qū)寫(xiě)到內(nèi)存的大小;so:每秒寫(xiě)入交換區(qū)的內(nèi)存大??;io(單位:塊/秒)bi:每秒讀取的塊數(shù);bo:每秒寫(xiě)入的塊數(shù);隨機(jī)磁盤(pán)讀寫(xiě)的時(shí)候,這2個(gè)值越大,能看到CPU在IO等待的值也會(huì)越大;system(系統(tǒng));這2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越大;in:每秒中斷數(shù),包括時(shí)鐘中斷;cs:每秒上下文切換數(shù);cpu(以百分比表示)us:用戶進(jìn)程執(zhí)行時(shí)間(usertime);sy:系統(tǒng)進(jìn)程執(zhí)行時(shí)間(systemtime);id:空閑時(shí)間(包括IO等待時(shí)間);wa:等待IO時(shí)間;wa的值高時(shí),說(shuō)明IO等待比較嚴(yán)重,這可能由于磁盤(pán)大量作隨機(jī)訪問(wèn)造成,也有可能磁盤(pán)出現(xiàn)瓶頸【例2】統(tǒng)計(jì)各種計(jì)數(shù)器vmstat命令的-s參數(shù),將輸出各種事件計(jì)數(shù)器和內(nèi)存的統(tǒng)計(jì)信息。[root@localhost~]#vmstat-s1843832Ktotalmemory1511116Kusedmemory497892Kactivememory501156Kinactivememory72140Kfreememory24Kbuffermemory260552Kswapcache2097148Ktotalswap154112Kusedswap1943036Kfreeswap3102non-niceusercputicks108niceusercputicks3908systemcputicks324304idlecputicks3020IO-waitcputicks1019IRQcputicks329softirqcputicks0stolencputicks975040pagespagedin226413pagespagedout1301pagesswappedin40098pagesswappedout337623interrupts739459CPUcontextswitches1629442374boottime3580forks4.iostat命令iostat命令用于統(tǒng)計(jì)并輸出特定設(shè)備或分區(qū)的IO信息?!纠?】iostat的-d參數(shù)將會(huì)輸出所有磁盤(pán)的統(tǒng)計(jì)信息。[root@localhost~]#iostat-d33DevicetpskB_read/skB_wrtn/skB_readkB_wrtnsda1.2527.707.95744567213572scd00.010.090.0024080dm-01.2926.057.22700162194081dm-10.000.080.0022200DevicetpskB_read/skB_wrtn/skB_readkB_wrtnsda0.330.001.3304scd00.000.000.0000dm-00.330.001.3304dm-10.000.000.0000DevicetpskB_read/skB_wrtn/skB_readkB_wrtnsda0.000.000.0000scd00.000.000.0000dm-00.000.000.0000dm-10.000.000.0000說(shuō)明:各列信息說(shuō)明tps:該設(shè)備每秒的傳輸次數(shù)(transferspersecond)。"一次傳輸"即"一次I/O請(qǐng)求"。多個(gè)邏輯請(qǐng)求可能會(huì)被合并為"一次I/O請(qǐng)求"。"一次傳輸"請(qǐng)求的大小是未知的。kB_read/s:每秒從設(shè)備(driveexpressed)讀取的數(shù)據(jù)量;kB_wrtn/s:每秒向設(shè)備(driveexpressed)寫(xiě)入的數(shù)據(jù)量;kB_read:讀取的總數(shù)據(jù)量;kB_wrtn:寫(xiě)入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。5.top命令實(shí)時(shí)排序顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,top命令經(jīng)常用來(lái)檢查L(zhǎng)inux的哪個(gè)進(jìn)程占用資源最多,分析系統(tǒng)的性能瓶頸時(shí)非常有用?!纠?】在Linux系統(tǒng)中命令提示符下,運(yùn)行top,可以查詢進(jìn)程系統(tǒng)狀態(tài)。[root@localhost~]#toptop-06:26:46up8:38,1user,loadaverage:0.19,0.05,0.04Tasks:315total,1running,314sleeping,0stopped,0zombie%Cpu(s):0.3us,0.7sy,0.0ni,98.7id,0.0wa,0.3hi,0.0si,0.0stMiBMem:1800.6total,97.6free,870.7used,832.3buff/cacheMiBSwap:2048.0total,1692.0free,356.0used.727.8availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND1022root20021920453604456S0.30.30:24.38vmtoolsd17987root200292006013893646316S0.37.50:57.05gnome-shell18289root2005406922535617648S0.31.40:07.90vmtoolsd21764root2006572851364252R0.30.30:00.13top1root20025619683844416S0.00.50:05.31systemd2root200000S0.00.00:00.01kthreadd上圖上很清晰地顯示系統(tǒng)總體的資源使用情況和各個(gè)進(jìn)程占用資源的排序情況。%CPU:98.7id說(shuō)明系統(tǒng)的CPU資源很空閑PID6332的進(jìn)程排在第一位,說(shuō)明這個(gè)進(jìn)程占用資源最多6.2.3任務(wù)3:定時(shí)作業(yè)和系統(tǒng)錯(cuò)誤信息主要學(xué)習(xí)命令crontab、at、dmsg。1.定時(shí)作業(yè)crontabLinux的crontab定時(shí)任務(wù)是個(gè)很好用的功能,如:可以通過(guò)crontab定時(shí)任務(wù)來(lái)清理磁盤(pán)空間,定時(shí)執(zhí)行任務(wù),讓系統(tǒng)運(yùn)維工作更加高效。crontab命令用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。(1)檢查是否安裝了crontab,如果提示未安裝請(qǐng)自行安裝,crontab安裝包在系統(tǒng)光盤(pán)里面的pacekage文件夾crontabs安裝包。[root@localhostnmon16m_helpsystems]#rpm-qa|grepcrontabcrontabs-1.11-16.20150630git.el8.noarch[root@localhostnmon16m_helpsystems]#more/etc/crontab(2)crontab服務(wù)啟動(dòng)與關(guān)閉命令如下。/etc/init.d/crondstop--關(guān)閉服務(wù)/etc/init.d/crondstart--啟動(dòng)服務(wù)/etc/init.d/crondrestart--重啟服務(wù)/etc/init.d/crondreload--重新載入配置(3)crontab在/etc目錄下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五個(gè)目錄和crontab,cron.deny二個(gè)文件。[root@localhostnmon16m_helpsystems]#ls/etc/cron*/etc/cron.deny/etc/crontab/etc/cron.d:0hourlyraid-check/etc/cron.daily:logrotate/etc/cron.hourly:0anacron/etc/cron.monthly:/etc/cron.weekly:cron.daily是每天執(zhí)行一次的jobcron.weekly是每個(gè)星期執(zhí)行一次的jobcron.monthly是每月執(zhí)行一次的jobcron.hourly是每個(gè)小時(shí)執(zhí)行一次的jobcron.d是系統(tǒng)自動(dòng)定期需要做的任務(wù)crontab是設(shè)定定時(shí)任務(wù)執(zhí)行文件cron.deny文件就是用于控制不讓哪些用戶使用Crontab的功能用戶配置文件:每個(gè)用戶都有自己的cron配置文件,通過(guò)crontab-e就可以編輯,一般情況下我們編輯好用戶的cron配置文件保存退出后,系統(tǒng)會(huì)自動(dòng)就存放于/var/spool/cron/目錄中,文件以用戶名命名.Linux的cron服務(wù)是每隔一分鐘去讀取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的內(nèi)容。5.crontab文件格式:*****commandminutehourdaymonthweekcommand分時(shí)天月星期命令各選項(xiàng)含義如下:minute:表示分鐘,可以是從0到59之間的任何整數(shù)。hour:表示小時(shí),可以是從0到23之間的任何整數(shù)。day:表示日期,可以是從1到31之間的任何整數(shù)。month:表示月份,可以是從1到12之間的任何整數(shù)。week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫(xiě)的腳本文件。6.特殊字符:星號(hào)(*):代表每的意思,例如month字段如果是星號(hào),則表示每月都執(zhí)行該命令操作。逗號(hào)(,):表示分隔時(shí)段的意思,例如,“1,3,5,7,9”。中杠(-):表示一個(gè)時(shí)間范圍,例如“2-6”表示“2,3,4,5,6”。正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每?jī)尚r(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。7.在home目錄下編寫(xiě)一個(gè)test.sh腳本。chmoda+x/home/test.sh--給test.sh腳本執(zhí)行賦權(quán)l(xiāng)l/home/test.sh--查看腳本是否有執(zhí)行權(quán)限8.運(yùn)行crontab–e編寫(xiě)一條定時(shí)任務(wù)*/5****/home/test.sh在每5分鐘執(zhí)行一次test.sh腳本。crontab-e*/5****/home/test.sh9.查詢當(dāng)前用戶定時(shí)任務(wù)或刪除當(dāng)前用戶定時(shí)任務(wù)。[root@localhost~]crontab-l--列出當(dāng)前用戶定時(shí)任務(wù)[root@localhost~]crontab-r--刪除當(dāng)前用戶定時(shí)任務(wù)(刪除所有,除非不再使用,否則沒(méi)必要使用10.設(shè)置crond開(kāi)機(jī)自動(dòng)啟動(dòng)。

[root@localhost~]chkconfig--listcrond--查看crond是否開(kāi)機(jī)自動(dòng)啟動(dòng)[root@localhost~]chkconfig--level35crondon--設(shè)置crond開(kāi)機(jī)自動(dòng)啟動(dòng)遇到的問(wèn)題:新創(chuàng)建的cronjob,不會(huì)馬上執(zhí)行,至少要過(guò)2分鐘才執(zhí)行。如果重啟cron則馬上執(zhí)行。當(dāng)crontab突然失效時(shí),可以嘗試/etc/init.d/crondrestart解決問(wèn)題?;蛘卟榭慈罩究茨硞€(gè)job有沒(méi)有執(zhí)行/報(bào)錯(cuò)tail-f/var/log/cron。需給新增的腳本賦權(quán)。[root@localhost~]#tail-f/var/log/cronAug1503:27:02localhostrun-parts[15888]:(/etc/cron.daily)finishedlogrotateAug1503:27:02localhostanacron[15410]:Job`cron.daily'terminatedAug1503:27:02localhostanacron[15410]:Normalexit(1jobrun)Aug1503:37:34localhostcrontab[16153]:(root)BEGINEDIT(root)Aug1503:37:37localhostcrontab[16153]:(root)ENDEDIT(root)2.at命令redhat中系統(tǒng)延時(shí)任務(wù)及定時(shí)任務(wù)采用at命令實(shí)現(xiàn)。系統(tǒng)延時(shí)任務(wù)設(shè)置如下:at11:11#設(shè)定任務(wù)執(zhí)行時(shí)間at>rm-rf/mnt/*#任務(wù)動(dòng)作at><eof><<ctrl+D#ctrl+D發(fā)起任務(wù)atnow+1min#延時(shí)1分鐘at>rm-rf/mnt/*#刪除/mnt/的所有任務(wù)動(dòng)作at><eof>#結(jié)束命令at-lat-c10Cannotfindjobid10注:若出錯(cuò),可用find/-typef-namecrond查一下看一下有沒(méi)有是哪個(gè)文件生成它的。[root@localhost~]#find/-typef-namecrond/etc/pam.d/crond/etc/sysconfig/crond/usr/sbin/crond若提示權(quán)限不足,解決方法:修改/etc/pam.d/crond,把把所有required改成sufficient,這個(gè)對(duì)非root用戶管用。[root@localhost~]#vi/etc/pam.d/crond改為:一般解決的流程:檢查crond服務(wù)的日志,通過(guò)日志的報(bào)錯(cuò)信息來(lái)判斷、定位分析問(wèn)題。[root@localhost~]#cat/var/log/cron3.系統(tǒng)錯(cuò)誤信息可用cat或者tail-f命令可查看日志文件/var/log/message,其中存放了系統(tǒng)啟動(dòng)后的信息和錯(cuò)誤日志,是RedHatLinux中最常用的日志之一。其他的日志文件主要包括:/var/log/secure與安全相關(guān)的日志信息/var/log/maillog與郵件相關(guān)的日志信息/var/log/cron與定時(shí)任務(wù)相關(guān)的日志信息/var/log/spooler與UUCP和news設(shè)備相關(guān)的日志信息/var/log/boot.log守護(hù)進(jìn)程啟動(dòng)和停止相關(guān)的日志消息查看方法:[root@localhost~]#ls/var/log查看系統(tǒng)相關(guān)信息命令如下。系統(tǒng):#uname-a#查看內(nèi)核/操作系統(tǒng)/CPU信息#cat/etc/issue#cat/etc/redhat-release#查看操作系統(tǒng)版本#cat/proc/cpuinfo#查看CPU信息#hostname#查看計(jì)算機(jī)名#lspci-tv#列出所有PCI設(shè)備#lsusb-tv#列出所有USB設(shè)備#lsmod#列出加載的內(nèi)核模塊#env#查看環(huán)境變量資源:#free-m#查看內(nèi)存使用量和交換區(qū)使用量#df-h#查看各分區(qū)使用情況#du-sh<目錄名>#查看指定目錄的大小#grepMemTotal/proc/meminfo#查看內(nèi)存總量#grepMemFree/proc/meminfo#查看空閑內(nèi)存量#uptime#查看系統(tǒng)運(yùn)行時(shí)間、用戶數(shù)、負(fù)載#cat/proc/loadavg#查看系統(tǒng)負(fù)載

磁盤(pán)和分區(qū):#mount|column-t#查看掛接的分區(qū)狀態(tài)#fdisk-l#查看所有分區(qū)#swapon-s#查看所有交換分區(qū)#hdparm-i/dev/hda#查看磁盤(pán)參數(shù)(僅適用于IDE設(shè)備)#dmesg|grepIDE#查看啟動(dòng)時(shí)IDE設(shè)備檢測(cè)狀況網(wǎng)絡(luò):#ifconfig#查看所有網(wǎng)絡(luò)接口的屬性#iptables-L#查看防火墻設(shè)置#route-n#查看路由表#netstat-lntp#查看所有監(jiān)聽(tīng)端口#netstat-antp#查看所有已經(jīng)建立的連接#netstat-s#查看網(wǎng)絡(luò)統(tǒng)計(jì)信息進(jìn)程:#ps-ef#查看所有進(jìn)程#top#實(shí)時(shí)顯示進(jìn)程狀態(tài)(另一篇文章里面有詳細(xì)的介紹)用戶:#w#查看活動(dòng)用戶#id<用戶名>#查看指定用戶信息#last#查看用戶登錄日志#cut-d:-f1/etc/passwd#查看系統(tǒng)所有用戶#cut-d:-f1/etc/group#查看系統(tǒng)所有組#crontab-l#查看當(dāng)前用戶的計(jì)劃任務(wù)服務(wù):#chkconfig–list#列出所有系統(tǒng)服務(wù)#chkconfig–list|grepon#列出所有啟動(dòng)的系統(tǒng)服務(wù)

4.dmesg使用Linux系統(tǒng)常需查看/var/log目錄下的messages、dmsg兩個(gè)日志文件有無(wú)相關(guān)操作問(wèn)題記錄。以下介紹如何配置dmesg服務(wù)。[root@localhost~]#touch/etc/systemd/system/dmesg.service[root@localhost~]#cd/etc/systemd/system[root@localhostsystem]#vidmesg.service輸入:[Unit]Descrition=Create/var/log/dmesgonbootConditonPatExists=/var/log/dmesg[Service]ExecStart=/usr/bin/dmesgStandardOUtput=file:var/log/dmesg[Install]WantedBy=multi-user.target創(chuàng)建dmesg文件:root@localhostsystem]#touch/var/log/dmesg使能剛創(chuàng)建的dmesg文件:[root@localhostsystem]#systemctlenabledmesgCreatedsymlink/etc/systemd/system/multi-user.target.wants/dmesg.service→/etc/systemd/system/dmesg.service.運(yùn)行測(cè)試:[root@localhostsystem]#dmesg[0.000000]Linuxversion4.18.0-193.el8.x86_64(mockbuild@)(gccversion8.3.120191121(RedHat8.3.1-5)(GCC))#1SMPFriMar2714:35:58UTC2020[0.000000]Commandline:BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-193.el8.x86_64root=/dev/mapper/rhel-rootrocrashkernel=autoresume=/dev/mapper/rhel-swaprd.lvm.lv=rhel/rootrd.lvm.lv=rhel/swaprhgbquiet[0.000000]Disabledfaststringoperations[0.000000]x86/fpu:SupportingXSAVEfeature0x001:'x87floatingpointregisters'[0.000000]x86/fpu:SupportingXSAVEfeature0x002:'SSEregisters'[root@localhostsystem]#systemctlstartdmesg[root@localhostsystem]#systemctlrestartdmesg6.3任務(wù)實(shí)施-檢查數(shù)據(jù)庫(kù)服務(wù)器在系統(tǒng)的運(yùn)行狀態(tài)應(yīng)用程序在服務(wù)器運(yùn)行時(shí),將占用服務(wù)器的資源,操作系統(tǒng)可以用占用CPU資源、內(nèi)存資源和IO資源來(lái)衡量一個(gè)應(yīng)用程序使用資源的程度。本任務(wù)實(shí)施將利用操作系統(tǒng)的工具top、vmstat和第三方免費(fèi)開(kāi)源工具nmon監(jiān)控Mysql數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行情況,即CPU使用率,內(nèi)存占用,和IO讀寫(xiě)情況。6.3.1任務(wù)實(shí)施步驟1設(shè)計(jì)一個(gè)Mysql存儲(chǔ)過(guò)程,使Mysql數(shù)據(jù)庫(kù)服務(wù)器處于一個(gè)較高負(fù)載的運(yùn)行狀態(tài)。創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,創(chuàng)建一張表,然后執(zhí)行循環(huán)語(yǔ)句,插入10萬(wàn)條記錄。[root@Mysqlserver/]#Mysql-uroot-p[root@Mysqlserver/]Mysql>dropdatabaseifexistsdb1;createdatabasedb1;usedb1;delimiter$$createprocedurepro1(innint)begindeclarenum001,num002int;setnum001=1,num002=1;CREATETABLEtest(IDINTPRIMARYKEYAUTO_INCREMENT,test_nameVARCHAR(20),test_numINT);whilen-num001>=0doinsertintotest(test_name,test_num)values(concat("zhangsan",num001),num002);setnum001=num001+1,num002=num002+2;endwhile;end$$delimiter;執(zhí)行存儲(chǔ)過(guò)程:Mysql>callpro1(100000);//第一次執(zhí)行QueryOK,1rowaffected(3min28.44sec)間隔幾分鐘,再次執(zhí)行存儲(chǔ)過(guò)程:Mysql>droptabletest;QueryOK,0rowsaffected(0.05sec)Mysql>callpro1(100000);//第二次執(zhí)行QueryOK,1rowaffected(3min31.16sec)6.3.2任務(wù)實(shí)施步驟2使用操作系統(tǒng)工具,在Mysql數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行存儲(chǔ)過(guò)程時(shí),監(jiān)控它使用系統(tǒng)資源的情況。1.使用top工具監(jiān)控[root@Mysqlserver/]toptop-14:49:25up1:19,1user,loadaverage:2.83,2.05,1.10Tasks:321total,3running,318sleeping,0stopped,0zombie%Cpu(s):12.5us,61.8sy,0.0ni,0.0id,10.6wa,10.4hi,4.6si,0.0stMiBMem:3758.6total,1199.7free,1616.8used,942.1buff/cacheMiBSwap:4048.0total,4048.0free,0.0used.1888.6availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND3162Mysql200134783642570432376S40.911.13:51.46Mysqld957root200000R16.70.01:32.10jbd2/dm-+467root0-20000I8.50.00:48.59kworker/+2513root200289332815838892436S4.94.11:22.39gnome-sh+2904root2005348804614033744S1.01.20:14.08gnome-te+2645root200177712298008252S0.70.80:23.47sssd_kcm2569root20036716880926664S0.30.20:02.36ibus-dae+10root200000R0.20.00:01.15rcu_sched1030root2001528441256010992S0.20.30:06.63vmtoolsd1041root20016012067565924S0.20.20:03.07rngd2735root20020658868126096S0.20.20:00.73ibus-eng+2830root2005508563960431752S0.21.00:07.27vmtoolsd4000root2006400049924128R0.20.10:02.40top4061root200000I0.20.00:00.05kworker/+1root200179216140969148S0.00.40:03.95systemd2root200000S0.00.00:00.01kthreadd3root0-20000I0.00.00:00.00rcu_gp從上面的數(shù)據(jù),可以看到Mysql數(shù)據(jù)庫(kù)服務(wù)器的進(jìn)程Mysqld,當(dāng)前運(yùn)行時(shí)占用了43.2%的CPU資源,占用了10%的內(nèi)存資源。整個(gè)系統(tǒng)CPU的使用率非常高12.5us,61.8sy,0.0id,10.6wa,10.4hi,4.6si.2.使用vmstat工具[root@Mysqlserver/]#vmstat10procsmemoryswap--io-system--cpurbswpdfreebuffcachesisobiboincsussyidwast10011880406783689996000031202482296000001187976678368999600002118246129600200118797667836899964000012926212970010011877766783689996400002403954493001001187900678368999640001145288229600000118777667836899964

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論