⑴ linux 如何查看硬碟大小,內存大小等系統信息及硬體信息
一、linux CPU大小x0dx0a[root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"x0dx0amodel name: Intel(R) Xeon(TM) CPU 2.80GHzx0dx0amodel name: Intel(R) Xeon(TM) CPU 2.80GHzx0dx0amodel name: Intel(R) Xeon(TM) CPU 2.80GHzx0dx0amodel name: Intel(R) Xeon(TM) CPU 2.80GHzx0dx0aphysical id : 0x0dx0aphysical id : 0x0dx0aphysical id : 3x0dx0aphysical id : 3x0dx0a[root@idc ~]#x0dx0ax0dx0a說明:Linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。x0dx0a其實應該通過Physical Processor ID來區分單核和雙核。而Physical Processor ID可以從cpuinfo或者dmesg中找到. flags 如果有 ht 說明支持超線程技術 判斷物理CPU的個數可以查看physical id 的值,相同則為同一個物理CPUx0dx0a可以看到上面,這台機器有兩個雙核的CPU,ID分別是0和3,大小是2.8G。x0dx0a二、內存大小x0dx0a[root@xbidc ~]# cat /proc/meminfo |grep MemTotalx0dx0aMemTotal: 1034612 kBx0dx0a[root@xbidc ~]# x0dx0ax0dx0a三、硬碟大小x0dx0a[root@xbidc ~]# fdisk -l |grep Diskx0dx0aDisk /dev/sda: 300.0 GB, 300000000000 bytesx0dx0a[root@xbidc ~]#x0dx0ax0dx0a四、 更多查看linux硬體信息的方法x0dx0auname -a # 查看內核/操作系統/CPU信息的linux系統信息命令x0dx0ahead -n 1 /etc/issue # 查看操作系統版本,是數字1不是字母Lx0dx0acat /proc/cpuinfo # 查看CPU信息的linux系統信息命令x0dx0ahostname # 查看計算機名的linux系統信息命令x0dx0alspci -tv # 列出所有PCI設備x0dx0alsusb -tv # 列出所有USB設備的linux系統信息命令x0dx0alsmod # 列出載入的內核模塊x0dx0aenv # 查看環境變數資源x0dx0afree -m # 查看內存使用量和交換區使用量x0dx0adf -h # 查看各分區使用情況x0dx0a -sh # 查看指定目錄的大小x0dx0agrep MemTotal /proc/meminfo # 查看內存總量x0dx0agrep MemFree /proc/meminfo # 查看空閑內存量x0dx0auptime # 查看系統運行時間、用戶數、負載x0dx0acat /proc/loadavg # 查看系統負載磁碟和分區x0dx0amount | column -t # 查看掛接的分區狀態x0dx0afdisk -l # 查看所有分區x0dx0aswapon -s # 查看所有交換分區x0dx0ahdparm -i /dev/hda # 查看磁碟參數(僅適用於IDE設備)x0dx0admesg | grep IDE # 查看啟動時IDE設備檢測狀況網路x0dx0aifconfig # 查看所有網路介面的屬性x0dx0aiptables -L # 查看防火牆設置x0dx0aroute -n # 查看路由表x0dx0anetstat -lntp # 查看所有監聽埠x0dx0anetstat -antp # 查看所有已經建立的連接x0dx0anetstat -s # 查看網路統計信息進程x0dx0aps -ef # 查看所有進程x0dx0atop # 實時顯示進程狀態用戶x0dx0aw # 查看活動用戶x0dx0aid # 查看指定用戶信息x0dx0alast # 查看用戶登錄日誌x0dx0acut -d: -f1 /etc/passwd # 查看系統所有用戶x0dx0acut -d: -f1 /etc/group # 查看系統所有組x0dx0acrontab -l # 查看當前用戶的計劃任務服務x0dx0achkconfig _list # 列出所有系統服務x0dx0achkconfig _list | grep on # 列出所有啟動的系統服務程序x0dx0arpm -qa # 查看所有安裝的軟體包x0dx0acat /proc/cpuinfo :查看CPU相關參數的linux系統命令x0dx0acat /proc/partitions :查看linux硬碟和分區信息的系統信息命令x0dx0acat /proc/meminfo :查看linux系統內存信息的linux系統命令x0dx0acat /proc/version :查看版本,類似uname -rx0dx0acat /proc/ioports :查看設備io埠x0dx0acat /proc/interrupts :查看中斷x0dx0acat /proc/pci :查看pci設備的信息x0dx0acat /proc/swaps :查看所有swap分區的信息
⑵ 命令查看Linux伺服器內存、CPU、顯卡、硬碟使用情況
大致結果類似下圖:
Mem行(單位均為M):
(-/+ buffers/cache)行:
Swap行指交換分區。
實際上不要看free少就覺得內存不足了,buffers和cached都是可以在使用內存時拿來用的,應該以(-/+ buffers/cache)行的free和used來看。只要沒發現swap的使用,就不用太擔心,如果swap用了很多,那就要考慮增加物理內存了。
大致結果類似下圖:
上方文字部分的紅框為總的CPU佔用百分率,下方的表格是每個進程的CPU佔用率,在表格第一行可以看到紅框中佔用率超過了150%,這是因為伺服器是多核CPU,而該進程使用了多核。
大致結果類似下圖:
表格中會顯示顯卡的一些信息,第一行是版本信息,第二行是標題欄,第三行就是具體的顯卡信息了,如果有多個顯卡,會有多行,每一行的信息值對應標題欄對應位置的信息。
需要注意的一點是顯存佔用率和GPU佔用率是兩個不一樣的東西,類似於內存和CPU,兩個指標的佔用率不一定是互相對應的。
在下面就是每個進程使用的GPU情況了。
大致結果如下圖:
表格中每一行代表一個文件系統,各列意義如下:
要查看具體某個文件或者文件夾的大小的話,可以使用下面的命令:
命令可以查看文件或文件夾的磁碟使用空間,而-h參數的意思是使用GB、MB等易讀的格式。如果不帶--max-depth參數,那麼將循環列出文件夾下所有文件和文件夾佔用的空間,帶此參數,則是指定深入目錄的層數。
如果要看文件夾下所有文件的大小,可以使用*:
查看作者首頁
⑶ 如何創建任意大小的linux內存虛擬硬碟
您講的內存檔是英譯過來的:
即ramdisk,並非虛擬內存
大多數的Linux發行版本中,內存檔默認使用的是/dev/shm 路徑,文件系統類型為tmpfs
默認大小是內存實際的大小,這很符合實際的操作習慣,操作這個路徑就是對內存的操作。
我們可以重新設置這個內存檔的大小,或者建立新的內存檔,以加速一些特別的應用,例如squid的緩沖,dns的緩沖文件等等。
重設內存檔大小:
例如:
mount -o remount,size=3G /dev/shm
注意size的大小可以的單位是M\k\G
新建內存檔:
例如:
mkdir /usr/local/squid/var/cache
mount -t tmpfs -o size=3G,mode=0755 tmpfs /usr/local/squid/var/cache
注意重新設置內存檔後為了使用下次啟用生效必須寫到fstab文件中,一般linux是在/etc/fstab中。
⑷ LINUX系統的內存管理知識詳解
內存是Linux內核所管理的最重要的資源之一。內存管理系統是操作系統中最為重要的部分,因為系統的物理內存總是少於系統所需要的內存數量。虛擬內存就是為了克服這個矛盾而採用的策略。系統的虛擬內存通過在各個進程之間共享內存而使系統看起來有多於實際內存的內存容量。Linux支持虛擬內存, 就是使用磁碟作為RAM的擴展,使可用內存相應地有效擴大。核心把當前不用的內存塊存到硬碟,騰出內存給其他目的。當原來的內容又要使用時,再讀回內存。以下就是我為大家整理到的詳細LINUX系統內存管理的知識,歡迎大家閱讀!!!
LINUX系統教程:內存管理的知識詳解
一、內存使用情況監測
(1)實時監控內存使用情況
在命令行使用「Free」命令可以監控內存使用情況
代碼如下:
#free
total used free shared buffers cached
Mem: 256024 192284 63740 0 10676 101004
-/+ buffers/cache: 80604 175420
Swap: 522072 0 522072
上面給出了一個256兆的RAM和512兆交換空間的系統情況。第三行輸出(Mem:)顯示物理內存。total列不顯示核心使用的物理內存(通常大約1MB)。used列顯示被使用的內存總額(第二行不計緩沖)。 free列顯示全部沒使用的內存。Shared列顯示多個進程共享的內存總額。Buffers列顯示磁碟緩存的當前大小。第五行(Swap:)對對換空間,顯示的信息類似上面。如果這行為全0,那麼沒使用對換空間。在預設的狀態下,free命令以千位元組(也就是1024位元組為單位)來顯示內存使用情況。可以使用—h參數以位元組為單位顯示內存使用情況,或者可以使用—m參數以兆位元組為單位顯示內存使用情況。還可以通過—s參數使用命令來不間斷地監視內存使用情況:
#free –b –s2
這個命令將會在終端窗口中連續不斷地報告內存的使用情況,每2秒鍾更新一次。
(2)組合watch與 free命令用來實時監控內存使用情況:
代碼如下:
#watch -n 2 -d free
Every 2.0s: free Fri Jul 6 06:06:12 2007
total used free shared buffers cached
Mem: 233356 218616 14740 0 5560 64784
-/+ buffers/cache: 148272 85084
Swap: 622584 6656 615928
watch命令會每兩秒執行 free一次,執行前會清除屏幕,在同樣位置顯示數據。因為 watch命令不會卷動屏幕,所以適合出長時間的監測內存使用率。可以使用 -n選項,控制執行的頻率;也可以利用 -d選項,讓命令將每次不同的地方顯示出來。Watch命令會一直執行,直到您按下 [Ctrl]-[C] 為止。
二、虛擬內存的概念
(1)Linux虛擬內存實現機制
Linux虛擬內存的實現需要六種機制的支持:地址映射機制、內存分配回收機制、緩存和刷新機制、請求頁機制、交換機制、內存共享機制。
首先內存管理程序通過映射機制把用戶程序的邏輯地址映射到物理地址,在用戶程序運行時如果發現程序中要用的虛地址沒有對應的物理內存時,就發出了請求頁要求;如果有空閑的內存可供分配,就請求分配內存(於是用到了內存的分配和回收),並把正在使用的物理頁記錄在緩存中(使用了緩存機制)。 如果沒有足夠的內存可供分配,那麼就調用交換機制,騰出一部分內存。另外在地址映射中要通過TLB(翻譯後援存儲器)來尋找物理頁;交換機制中也要用到交換緩存,並且把物理頁內容交換到交換文件中後也要修改頁表來映射文件地址。
(2)虛擬內存容量設定
也許有人告訴你,應該分配2倍於物理內存的虛擬內存,但這是個不固定的規律。如果你的物理保存比較小,可以這樣設定。如果你有1G物理內存或更多的話,可以縮小一下虛擬內存。Linux會把大量的內存用做Cache的,但在資源緊張時回收回.。你只要看到swap為0或者很小就可以放心了,因為內存放著不用才是最大的浪費。
三、使甩vmstat命令監視虛擬內存使用情況
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。通常使用vmstat 5 5(表示在5秒時間內進行5次采樣)命令測試。將得到一個數據匯總它可以反映真正的系統情況。
代碼如下:
#vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 62792 3460 9116 88092 6 30 189 89 1061 569 17 28 54 2
0 0 62792 3400 9124 88092 0 0 0 14 884 434 4 14 81 0
0 0 62792 3400 9132 88092 0 0 0 14 877 424 4 15 81 0
1 0 62792 3400 9140 88092 0 0 0 14 868 418 6 20 74 0
1 0 62792 3400 9148 88092 0 0 0 15 847 400 9 25 67 0
vmstat命令輸出分成六個部分:
(1)進程procs:
r:在運行隊列中等待的進程數 。
b:在等待io的進程數 。
(2)內存memoy:
swpd:現時可用的交換內存(單位KB)。
free:空閑的內存(單位KB)。
buff: 緩沖去中的內存數(單位:KB)。
cache:被用來做為高速緩存的內存數(單位:KB)。
(3) swap交換頁面
si: 從磁碟交換到內存的交換頁數量,單位:KB/秒。
so: 從內存交換到磁碟的交換頁數量,單位:KB/秒。
(4) io塊設備:
bi: 發送到塊設備的塊數,單位:塊/秒。
bo: 從塊設備接收到的塊數,單位:塊/秒。
(5)system系統:
in: 每秒的中斷數,包括時鍾中斷。
cs: 每秒的環境(上下文)切換次數。
(6)cpu中央處理器:
cs:用戶進程使用的時間 。以百分比表示。
sy:系統進程使用的時間。 以百分比表示。
id:中央處理器的空閑時間 。以百分比表示。
如果 r經常大於 4 ,且id經常小於40,表示中央處理器的負荷很重。 如果bi,bo 長期不等於0,表示物理內存容量太小。
四、Linux 伺服器的內存泄露和回收內存的方法
1、內存泄漏的定義:
一般我們常說的內存泄漏是指堆內存的泄漏。堆內存是指程序從堆中分配的,大小任意的(內存塊的大小可以在程序運行期決定),使用完後必須顯示釋放的內存。應用程序一般使用malloc,realloc,new等函數從堆中分配到一塊內存,使用完後,程序必須負責相應的調用free或釋放該內存塊,否則,這塊內存就不能被再次使用,我們就說這塊內存泄漏了。
2、內存泄露的危害
從用戶使用程序的角度來看,內存泄漏本身不會產生什麼危害,作為一般的用戶,根本感覺不到內存泄漏的存在。真正有危害的`是內存泄漏的堆積,這會最終消耗盡系統所有的內存。從這個角度來說,一次性內存泄漏並沒有什麼危害,因為它不會堆積,而隱式內存泄漏危害性則非常大,因為較之於常發性和偶發性內存泄漏它更難被檢測到。存在內存泄漏問題的程序除了會佔用更多的內存外,還會使程序的性能急劇下降。對於伺服器而言,如果出現這種情況,即使系統不崩潰,也會嚴重影響使用。
3、內存泄露的檢測和回收
對於內存溢出之類的麻煩可能大家在編寫指針比較多的復雜的程序的時候就會遇到。在 Linux 或者 unix 下,C、C++語言是最使用工具。但是我們的 C++ 程序缺乏相應的手段來檢測內存信息,而只能使用 top 指令觀察進程的動態內存總額。而且程序退出時,我們無法獲知任何內存泄漏信息。
使用kill命令
使用Linux命令回收內存,我們可以使用Ps、Kill兩個命令檢測內存使用情況和進行回收。在使用超級用戶許可權時使用命令「Ps」,它會列出所有正在運行的程序名稱,和對應的進程號(PID)。Kill命令的工作原理是:向Linux操作系統的內核送出一個系統操作信號和程序的進程號(PID)。
應用例子:
為了高效率回收內存可以使用命令ps 參數v:
代碼如下:
[root@www ~]# ps v
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
2542 tty1 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty1
2543 tty2 Ss+ 0:00 0 8 1631 428 0.1 /sbin/mingetty tty2
2547 tty3 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty3
2548 tty4 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty4
2574 tty5 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty5
2587 tty6 Ss+ 0:00 0 8 1627 424 0.1 /sbin/mingetty tty6
2657 tty7 Ss+ 1:18 12 1710 29981 7040 3.0 /usr/bin/Xorg :0 -br -a
2670 pts/2 Ss 0:01 2 682 6213 1496 0.6 -bash
3008 pts/4 Ss 0:00 2 682 6221 1472 0.6 /bin/bash
3029 pts/4 S+ 0:00 2 32 1783 548 0.2 ping 192.168.1.12
3030 pts/2 R+ 0:00 2 73 5134 768 0.3 ps v
然後如果想回收Ping命令的內存的話,使用命令:
代碼如下:
# Kill -9 3029
使用工具軟體
Memprof是一個非常具有吸引力且非常易於使用的軟體,它由Red Hat的Owen Talyor創立。這個工具是用於GNOME前端的Boehm-Demers-Weiser垃圾回收器。這個工具直接就可以執行,並且其工作起來無需對源代碼進行任何修改。在程序執行時,這個工具會以圖形化的方式顯示內存的使用情況。
相關介紹:Linux
嚴格來講,Linux這個詞本身只表示Linux內核,但人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統。
Linux擁有以下特性:類似於Unix的基本思想,支持完全免費與自由傳播,完全兼容POSIX1.0標准,支持多用戶、多任務、有著良好的界面、支持多種平台。Linux 能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux有著許多不同的版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
⑸ 如何查看Linux伺服器的內存、硬碟
1,linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。
其實應該通過physical
processor
id來區分單核和雙核。而physical
processor
id可以從cpuinfo或者dmesg中找到.
flags
如果有
ht
說明支持超線程技術
判斷物理cpu的個數可以查看physical
id
的值,相同則為同一個物理cpu
2,查看內存大小:
cat
/proc/meminfo
grep
memtotal
3,其他一些可以查看詳細linux系統信息的命令和方法:
uname
-a
#
查看內核/操作系統/cpu信息的linux系統信息命令
head
-n
1
/etc/issue
#
查看操作系統版本,是數字1不是字母l
cat
/proc/cpuinfo
#
查看cpu信息的linux系統信息命令
hostname
#
查看計算機名的linux系統信息命令
lspci
-tv
#
列出所有pci設備
lsusb
-tv
#
列出所有usb設備的linux系統信息命令
lsmod
#
列出載入的內核模塊
env
#
查看環境變數資源
free
-m
#
查看內存使用量和交換區使用量
df
-h
#
查看各分區使用情況
-sh
#
查看指定目錄的大小
grep
memtotal
/proc/meminfo
#
查看內存總量
grep
memfree
/proc/meminfo
#
查看空閑內存量
uptime
#
查看系統運行時間、用戶數、負載
cat
/proc/loadavg
#
查看系統負載磁碟和分區
mount
column
-t
#
查看掛接的分區狀態
fdisk
-l
#
查看所有分區
swapon
-s
#
查看所有交換分區
hdparm
-i
/dev/hda
#
查看磁碟參數(僅適用於ide設備)
dmesg
grep
ide
#
查看啟動時ide設備檢測狀況網路
ifconfig
#
查看所有網路介面的屬性
iptables
-l
#
查看防火牆設置
route
-n
#
查看路由表
netstat
-lntp
#
查看所有監聽埠
netstat
-antp
#
查看所有已經建立的連接
netstat
-s
#
查看網路統計信息進程
ps
-ef
#
查看所有進程
top
#
實時顯示進程狀態用戶
w
#
查看活動用戶
id
#
查看指定用戶信息
last
#
查看用戶登錄日誌
cut
-d:
-f1
/etc/passwd
#
查看系統所有用戶
cut
-d:
-f1
/etc/group
#
查看系統所有組
crontab
-l
#
查看當前用戶的計劃任務服務
chkconfig
–list
#
列出所有系統服務
chkconfig
–list
grep
on
#
列出所有啟動的系統服務程序
rpm
-qa
#
查看所有安裝的軟體包
cat
/proc/cpuinfo
:查看cpu相關參數的linux系統命令
cat
/proc/partitions
:查看linux硬碟和分區信息的系統信息命令
cat
/proc/meminfo
:查看linux系統內存信息的linux系統命令
cat
/proc/version
:查看版本,類似uname
-r
cat
/proc/ioports
:查看設備io埠
cat
/proc/interrupts
:查看中斷
cat
/proc/pci
:查看pci設備的信息
cat
/proc/swaps
:查看所有swap分區的信息