1,Linux下可以在/proc/cpuinfo中看到每個cpu的詳細(xì)信息。但是對于雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供伍家崗網(wǎng)站建設(shè)、伍家崗做網(wǎng)站、伍家崗網(wǎng)站設(shè)計、伍家崗網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、伍家崗企業(yè)網(wǎng)站模板建站服務(wù),十載伍家崗做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
其實應(yīng)該通過Physical
Processor
ID來區(qū)分單核和雙核。而Physical
Processor
ID可以從cpuinfo或者dmesg中找到.
flags
如果有
ht
說明
支持超線程技術(shù)
判斷物理CPU的個數(shù)可以查看physical
id
的值,相同則為同一個物理CPU
2,查看內(nèi)存大小:
cat
/proc/meminfo
|grep
MemTotal
3,其他一些可以查看詳細(xì)
linux系統(tǒng)
信息的命令和方法:
uname
-a
#
查看內(nèi)核/操作系統(tǒng)/
CPU信息
的linux系統(tǒng)信息命令
head
-n
1
/etc/issue
#
查看操作系統(tǒng)版本,是數(shù)字1不是字母L
cat
/proc/cpuinfo
#
查看CPU信息的linux系統(tǒng)信息命令
hostname
#
查看計算機名的linux系統(tǒng)信息命令
lspci
-tv
#
列出所有
PCI設(shè)備
lsusb
-tv
#
列出所有USB設(shè)備的linux系統(tǒng)信息命令
lsmod
#
列出加載的內(nèi)核模塊
env
#
查看
環(huán)境變量
資源
free
-m
#
查看內(nèi)存使用量和
交換區(qū)
使用量
df
-h
#
查看各分區(qū)使用情況
du
-sh
#
查看指定目錄的大小
grep
MemTotal
/proc/meminfo
#
查看內(nèi)存總量
grep
MemFree
/proc/meminfo
#
查看空閑內(nèi)存量
uptime
#
查看系統(tǒng)
運行時間
、用戶數(shù)、負(fù)載
cat
/proc/loadavg
#
查看系統(tǒng)負(fù)載磁盤和分區(qū)
mount
|
column
-t
#
查看掛接的分區(qū)狀態(tài)
fdisk
-l
#
查看所有分區(qū)
swapon
-s
#
查看所有
交換分區(qū)
hdparm
-i
/dev/hda
#
查看磁盤參數(shù)(僅適用于
IDE設(shè)備
)
dmesg
|
grep
IDE
#
查看啟動時IDE設(shè)備檢測狀況網(wǎng)絡(luò)
ifconfig
#
查看所有網(wǎng)絡(luò)接口的屬性
iptables
-L
#
查看防火墻設(shè)置
route
-n
#
查看
路由表
netstat
-lntp
#
查看所有監(jiān)聽端口
netstat
-antp
#
查看所有已經(jīng)建立的連接
netstat
-s
#
查看
網(wǎng)絡(luò)統(tǒng)計
信息進程
ps
-ef
#
查看所有進程
top
#
實時顯示
進程狀態(tài)
用戶
w
#
查看活動用戶
id
#
查看指定用戶信息
last
#
查看
用戶登錄
日志
cut
-d:
-f1
/etc/passwd
#
查看系統(tǒng)所有用戶
cut
-d:
-f1
/etc/group
#
查看系統(tǒng)所有組
crontab
-l
#
查看當(dāng)前用戶的計劃任務(wù)服務(wù)
chkconfig
–list
#
列出所有系統(tǒng)服務(wù)
chkconfig
–list
|
grep
on
#
列出所有啟動的系統(tǒng)服務(wù)程序
rpm
-qa
#
查看所有安裝的軟件包
cat
/proc/cpuinfo
:查看CPU相關(guān)參數(shù)的linux系統(tǒng)命令
cat
/proc/partitions
:查看linux硬盤和分區(qū)信息的系統(tǒng)信息命令
cat
/proc/meminfo
:查看linux系統(tǒng)內(nèi)存信息的linux系統(tǒng)命令
cat
/proc/version
:查看版本,類似uname
-r
cat
/proc/ioports
:查看設(shè)備io端口
cat
/proc/interrupts
:查看中斷
cat
/proc/pci
:查看pci設(shè)備的信息
cat
/proc/swaps
:查看所有swap分區(qū)的信息
在服務(wù)端建立一個根據(jù)需要進行循環(huán)的PHP腳本就可以。
猜測一下,您的第二個問題,是不是想進行相關(guān)檢測以避免重復(fù)觸發(fā)這個腳本。
實際上,不建議由用戶行為觸發(fā)這個腳本,無論是服務(wù)端代碼,還是客戶端的異步Ajax。
如果要用PHP腳本進行不停的循環(huán)監(jiān)控,請聯(lián)系運維人員,服務(wù)器啟動,即在服務(wù)端開始運行這個腳本,他們會向您提供解決方案的。
真正的建議是,如果有任何可能,都不要使用PHP腳本利用循環(huán)代碼進行服務(wù)端的監(jiān)控。
不得不承認(rèn),這個方面PHP的穩(wěn)定性還差一些,Java或許可以這么做,PHP就比較痛苦了。
比較可能的辦法是請運維人員幫忙,通報監(jiān)控邏輯,然后請他安裝各種觸發(fā)條件調(diào)用相應(yīng)的PHP代碼。
如果堅持使用PHP腳本進行相關(guān)工作,有兩個建議給您:
盡快釋放資源,無論腳本使用了什么資源,包括文件、內(nèi)存、數(shù)據(jù)庫等等,都盡快釋放,這種地方可萬萬不能偷懶,否則就是自虐了。
在這個腳本中進行獨立的手工日志輸出,任何一層循環(huán)的入口都要進行記錄,這樣在監(jiān)控失敗的時候才有辦法查找問題。
那你可以在插入數(shù)據(jù)庫那里設(shè)置監(jiān)聽呀,一有插入就往Android推送消息。
不然你只能通過每隔一段時間刷新一下讀取數(shù)據(jù)庫,看看有沒有更新,有就推送,沒有就繼續(xù)監(jiān)聽,這個你可以自己設(shè)置更新時間。
樓上說的還是要定時檢測
不論怎么做,繞來繞去都是一樣的,都是需要定時檢測。
Ajax 控制一個異步PHP程序來檢測數(shù)據(jù)庫,然后返回值,供調(diào)用。
看到有人寫透視寶做php監(jiān)控的原理圖,跟你分享下。我估計大家做的方式都是差不多。
PHP運行支撐的ZendEngine早在設(shè)計過程中已經(jīng)預(yù)留了豐富的Hook,可以有效干涉處理過程中的幾個關(guān)鍵步驟。利用了以下幾個Hook,就能方便的獲取數(shù)據(jù):
1. ? ? ? ? ? zend_compile_file zend_compile_string
加載分析文件或字符串,本身就會造成非常大的IO,如果過多地執(zhí)行加載,無疑會造成內(nèi)存和CPU的消耗.通過這兩個hook,可以取得文件名、執(zhí)行行數(shù)、使用內(nèi)存和CPU占用時間。
2.???????????zend_execute zend_execute_internal
通過這兩個hook的使用,我們可以準(zhǔn)確地分析得出一個PHP應(yīng)用中的類調(diào)用、方法調(diào)用、方法參數(shù)、內(nèi)存占用和CPU占用,加以分析,便可以準(zhǔn)確得出應(yīng)用系統(tǒng)運行過程中的方法運行棧,API調(diào)用地址,SQL語句,CacheKey以及Cache命中等關(guān)鍵信息。
3.???????????zend_throw_exception_hook
利用異常鉤子,可以準(zhǔn)確地得到應(yīng)用系統(tǒng)運行過程中出現(xiàn)的異常信息,當(dāng)然包括異常發(fā)生的類\方法位置,參數(shù),異常code和異常message。
4.???????????zend_error_cb
錯誤鉤子則更加直接,可以準(zhǔn)確得到系統(tǒng)運行過程中出現(xiàn)的任何一個warning,代碼錯誤或語法錯誤。