操作系统相关知识
1 監控系統的一些命令
?? top:是linux中常用的性能分析工具,用來查看系統中各個資源的占用空間的數據。
????? 第一行是任務信息,從中到右分別是(當前時間),(系統運行時間,以時:分的格式),(當前登錄用戶數),(系統負載,三個數值分別是1分鐘,5分鐘,15分鐘前到現在的平均值。
????? 第二行屬于進程,從左到右分別是(進程總數),(正在運行的進程),(睡眠的進程),(停止的進程數),(僵尸進程)。
????? 第三行是關于CPU的信息,從左到右分別是(用戶空間占用CPU百分比),(內核空間占用CPU百分比),(用戶進程空間內改變過優先級的進程占用CPU的百分比),(空閑CPU的百分比)(,等待輸入輸出的CPU時間百分比),(硬件中斷占用CPU時間的百分比),(軟件中斷占用CPU時間的百分比)。
????? 第四行和第五行屬于內存信息。
?? free:顯示內存的使用狀態。
???????? (total)(Mem)屬于物理內存。
?????????(used)(Mem)使用的物理內存。
?????????(free)(Mem)可以使用的內存。
??????????他們之間的關系是(total)(Mem)=(used)(Mem)+(free)(Mem)
??????? ?(shared)(Mem)共享內存,表示有幾個進程共享的內存。
???????? (buffers)(Mem)表示已經分配但還未使用的buffers大小。
?????????(cached)(Mem)表示已經分配但還未使用的cached大小。
??????????buffers和cached功能是:
????????? buffers是用于存放要輸出到disk(塊設備)的數據,而cached是存放從disk上讀出的數據。都是為了提高IO的性能,由OS管理。
????????? 操作系統為了提高IO read的性能,總是要多一些cached數據,這就是(cached)(memory)為什么比較大。
?????????(used)(-buffers/cached):一個應用程序認為系統被用掉多少內存。(used)(-buffers/cached)=(used)(Mem)—(buffers)(Mem)—(cached)(Mem)
?????????(free)(+buffers/cached):一個應用程序認為系統還有多少內存。(free)(+buffers/cached)=(free)(Mem)+(buffers)(Mem)+(cached)(Mem)
?????????free命令的數值都是從?proc/meminfo中讀取的。 $ free -m是數值的單位為MB,不過數值沒有那么詳細。可以使用命令($ free -wm)可以得到buffers和cached各自使用的數值。
????? pstree:以樹狀形式顯示程序。進程狀態的使用方法是(pstree PID)。
????? kill:比一個信號發給一個或多個進程,默認為發送終止信號。終止進程的方法是(kill PID)。殺死進程使用方法是(kill -9 PID)。
???? pgrep:通過進程和其他屬性查找進程。查找進程方法是(pgrep 要查找的進程名稱)。
???? pkill:通過進程和其他屬性發信號給進程。殺死進程是(pkill 要殺死的進程名稱)。
???? fdisk:創建磁盤分區。
???????????? d(delete):刪除一個已存在的分區。
???????????? l(list):列出也存在分區的類型。
??????????? m(menu):列出fdisk中使用的所有命令。
??????????? n(new):添加一個新的分區。
?????????? ?p(print):列出分區表的內容。
???????????q(quit):退出fdisk,但是不儲存所操縱的變化。
???????????t(title):改變分區系統的id。
??????????w(write):退出fdisk,并儲存所操縱的變化。
??? partprobe:重新初始化內存中內核的分區表。
??? mkfs:格式化內存。使用方法是(mkfs.操作過后的對象名 操作對象)。
??? e2label:設定或查看一個設備的label名稱。查看某個分區的方法是(e2label 操作的對象)。設定命令的方法是(e2label 操作的對象 wg)。
???????? df:查看硬盤分區信息。
???????? mount:掛載文件系統。掛載的方法是(mount 掛載的目標 掛載的點)。
???????? umount:卸載文件系統。卸載方法是(umount 操作的目標)。假如在操作的對象目錄里使用方法是(umount -l 操作的對象)強制卸載。
??? 2、dd:用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。。
???????????? dd測試硬盤速度:dd if=/dev/zero of=/a.txt bs=200M count=1 ? ? dd:用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。 ? 注意:指定數字的地方若以下列字符結尾,則乘以相應的數字:b=512;c=1;k=1024;w=2 參數注釋: if=文件名:輸入文件名,缺省為標準輸入。即指定源文件。< if=input file > ? of=文件名:輸出文件名,缺省為標準輸出。即指定目的文件。< of=output file > ? ibs=bytes:一次讀入bytes個字節,即指定一個塊大小為bytes個字節。?? ?obs=bytes:一次輸出bytes個字節,即指定一個塊大小為bytes個字節。??? bs=bytes:同時設置讀入/輸出的塊大小為bytes個字節。 ? ? count=blocks:僅拷貝blocks個塊,塊大小等于ibs指定的字節數。 ? swapon:啟動交換分區,啟動的方法是(swapon 加上你要啟動的路勁)。后面加上-a:啟動全部的交換分區。后面加上那個-s:列出當前使用的所有系統交換分區的狀態。2? 進程的信息
??? PID:進程id。
??? PPID:父進程id。
??? RUESR:Real user name。
??? UID:進程所有者的用戶id。
??? USER:進程所有者的信息。
??? TTY:啟動進程的終端名(不是從終端啟動的進程則會顯示?)。
??? RR:優先級。
??? NI:nice值。(負值表示高優先級,正值表示低優先級)。
??? P:最后使用的CPU(僅在多CPU環境下有意義)。
??? %CPU:上次更新到現在CPU時間占用的百分比。
??? TIME:進程使用CPU的時間統計(單位秒)。
??? %MEM:進程使用的物理內存百分比。
??? VIRT:進程使用的虛擬內存總理(單位KB)。VIRT=SWAP+RES.
????SWAP:進程使用的虛擬內存中被換出的大小(單位KB)。
???? RES:進程使用的沒有被換出的物理內存大小(單位KB)。RES=CODE+DATA。
???? CODE:可執行代碼占用的物理內存大小(單位KB)。
???? DATA:可執行代碼以外部分占用物理內存的大小(單位KB)。
???? SHR:共享內存大小(單位KB)。
???? nFLT:面頁錯誤的次數。
???? nDRT:最后一次寫入到現在被修改的次數。
???? S:進程狀態
?????????????????? D=不可中斷的睡眠狀態。
?????????????????? R=運行。
?????????????????? S=睡眠。
?????????????????? T=跟蹤或停止。
???????????????????Z=僵尸進程。
??? COMMAND:命令名或命令行。
????WCHAN:若該進程在睡眠,則會顯示睡眠中的系統函數名。
??? Flags:任務標志,參考sched.h。
3? CPU的利用率與load average
??? CPU正常的利用率是<70%的。CPU負載<或=1時,能正常執行。CPU負載>1時,屬于超負荷執行。load average應該<或=CPU核數*0.7。CPU負載和CPU利用率過高都是不好的現象。
??? 為何要有1分鐘,5分鐘,15分鐘三種cpu的負載:是希望我們將他們三個值結合起來看。或者說是展示一個動態圖表示的數據。
??? 進程掛起是自身原因,遇到了I/O的阻塞,便會讓出CPU讓其他進程去執行,保證CPU一直在運行。
????與進程無關,在操作層面時,有個進程占用CPU過久時,或者需要調用硬盤里的文件時,而會調用其它進程使用CPU。
4? 硬盤的相關內容
??? 在linux系統中,每個設備都會被當一個文件來對待。而他們對應的文件名如下:
???????????????????? IDE硬盤:/dev/hd(a-d)
???????????????????? SCSI硬盤:/dev/sd(a-p)
?????????????????????U盤:/dev/sd(a-p){與SCSI硬盤一樣)
???????????????????? CDROM:/dev/sr0
????硬盤的結構和分區:硬盤為什么要有分區,更容易管理和控制操作系統,這樣系統效率高,更容易備份,可以限制用戶使用磁盤份額。
??? 硬盤主要分為主分區,擴展分區和邏輯分區。一個硬盤上最大可以劃分4個主分區,在SCSI磁盤最多可以分15個分區,IDE磁盤可以分63個分區。
?????硬盤的邏輯結構:硬盤結構為磁道,塊,磁柱和分區。
???????? 塊是盤片上訪問的最小單位,一個塊可以儲存一個字節的數據。
???????? 磁道是有一系列的頭尾相連塊組成的圓圈。
???????? 磁柱是有一疊磁道在相同半徑的每個盤面的磁道組成的。
???????? 分區是有一組相鄰的磁道組成的。
?? 掛載點的定義:將一個設備(通常是存儲設備)掛載到一個已存在的目錄。
??? 虛擬內存的定義:指一塊硬盤空間當作內存來使用,稱為交換分區(swap)。linux交換分區的型號是0x82.
?? i節點的定義:i節點是一個數據結構,他存放著有關一個普通文件,目錄或其他文件系統對象的基本信息。
?? 符號(軟)連接:符號連接的定義是只想另一個文件的一個文件。
???????????????????????? 創建軟連接的方法是用ln命令:使用的方法是(ln -s 你要操作的文件 需要存放的目錄/建立的符號鏈接)。例:ln –s wolf/dog.wolf.baby bodydog/dog_ wolf.boy
??? 硬鏈接:硬鏈接(hard link)的定義是一個文件名和一個i節點之間對應關系,也可以認為一個硬鏈接在所對應的文件名上加一個額外的路徑名。
??????????????? 使用ln命令創建硬鏈接的方法是:(ln 你要操作的文件 你要操作到哪個目錄/你需要建立的路徑名)例:ln wolf/wolf.dog backup/wolf.dog2.
掌握Linux系統中常見的文件類型: -:普通文件(regular file),也有人稱為正規文件。
??????????????????????????????? d:目錄(directory)。
??????????????????????????????? l:符號(軟)鏈接。
??????????????????????????????? b:塊特殊文件(b是block的第1個字符),一般指塊設備,如硬盤。
??????????????????????????????? c:字符特殊文件(c是character的第1個字符),一般指字符設備,如鍵盤。
怎樣檢查磁盤空間:用df命令顯示文件系統中磁盤使用和空閑區的數量。
? ? ? ? ?? 掌握df命令的功能:顯示文件系統中磁盤使用和空閑區的數量。
?????????? -a 顯示所有磁盤
?????????? -h 單位轉換
? ? ? ? ? ? 掌握du命令的功能: 顯示目錄和文件的大小a h同上
轉載于:https://www.cnblogs.com/fangjie0410/p/6909891.html
總結
- 上一篇: css中小知识点总结
- 下一篇: 2.异步回调检测线程结束