官术网_书友最值得收藏!

2.2 系統(tǒng)信息監(jiān)控

運(yùn)維離不開對系統(tǒng)信息的監(jiān)控,如CPU的使用率、內(nèi)存的占用情況、網(wǎng)絡(luò)、進(jìn)程等相關(guān)信息都需要被監(jiān)控,雖然我們可以通過操作系統(tǒng)提供的任務(wù)管理器或命令查看相關(guān)信息,但仍不能簡化這些日常的運(yùn)維任務(wù)。如果我們通過編寫程序獲取以上信息,那么系統(tǒng)信息監(jiān)控就是一件輕松而簡單的工作。

在Python中獲取系統(tǒng)信息最便捷的模塊是psutil(process and system utilities)。通過簡短的幾行代碼就可以獲取系統(tǒng)相關(guān)信息,而且還是跨平臺庫。psutil不屬于標(biāo)準(zhǔn)庫,需要手動(dòng)安裝。安裝psutil非常簡單,執(zhí)行以下命令即可。

pip install psutil

如果生產(chǎn)環(huán)境沒有聯(lián)網(wǎng)則可以先在外網(wǎng)使用pip下載,再移動(dòng)至生產(chǎn)環(huán)境安裝。為了方便顯示語句運(yùn)行結(jié)果,下面使用IPython解釋器。在此啰嗦一下,IPython是學(xué)習(xí)Python的利器,是讓Python顯得友好十倍的外套,強(qiáng)烈建議讀者使用IPython,可通過pip install ipython安裝IPython。

下面一一列舉使用方法。


【示例2-13】監(jiān)控CPU信息。


【示例2-14】監(jiān)控內(nèi)存信息。

In[11]:psutil.virtual_memory()
Out[11]: svmem(total=4196921344, available=644300800, percent=84.6,
used=3552620544, free=644300800)

這里的數(shù)值是以字節(jié)為單位顯示的,如需要轉(zhuǎn)成MB、GB自行轉(zhuǎn)換一下即可。


【示例2-15】監(jiān)控磁盤信息。

In[12]:psutil.disk_partitions()
Out[12]:
[sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'),
sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed'),
sdiskpart(device='E:\\', mountpoint='E:\\', fstype='NTFS', opts='rw,fixed'),
sdiskpart(device='F:\\', mountpoint='F:\\', fstype='NTFS', opts='rw,fixed'),
sdiskpart(device='G:\\', mountpoint='G:\\', fstype='', opts='cdrom'),
sdiskpart(device='J:\\', mountpoint='J:\\', fstype='', opts='removable')]
In[13]:psutil.disk_usage('/') # 磁盤使用情況
Out[13]: sdiskusage(total=192703098880, used=124325285888, free=68377812992,
percent=64.5)
In[14]:psutil.disk_io_counters()
Out[14]: sdiskio(read_count=1374834, write_count=618746, read_bytes=57800820224,
write_bytes=32607985152, read_time=22674, write_time=3128)


【示例2-16】監(jiān)控網(wǎng)絡(luò)信息。


【示例2-17】獲取進(jìn)程信息。

前面使用psutil.process_iter獲取了進(jìn)程相關(guān)的信息,返回結(jié)果是一個(gè)可迭代對象,每個(gè)元素的info是一個(gè)字典,通過字典可以獲取我們關(guān)心的信息。獲取進(jìn)程的其他信息如CPU占用、內(nèi)存占用、進(jìn)程的線程數(shù)等,還可以使用如下方式:


【示例2-18】下面是幾種常見的實(shí)用方法。

小結(jié):本節(jié)主要介紹了如何通過psutil庫獲取常見的系統(tǒng)信息和進(jìn)程信息,系統(tǒng)信息和進(jìn)程相關(guān)的指標(biāo)非常多,具體使用時(shí)我們只關(guān)心自己需要監(jiān)控的指標(biāo)即可,深入了解psutil模塊請查閱psutil的官方文檔。

主站蜘蛛池模板: 田阳县| 宿州市| 肥东县| 威信县| 云龙县| 镇安县| 尼木县| 京山县| 东光县| 丹棱县| 廊坊市| 咸丰县| 阜城县| 昭通市| 临湘市| 大名县| 枝江市| 志丹县| 枞阳县| 武定县| 汉源县| 凌源市| 奉节县| 延长县| 华安县| 镇坪县| 九龙城区| 潢川县| 县级市| 怀仁县| 奎屯市| 谢通门县| 永靖县| 甘孜| 怀远县| 历史| 油尖旺区| 宁南县| 汕尾市| 永善县| 利津县|