您好,登錄后才能下訂單哦!
本篇內容主要講解“Linux常見的問題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux常見的問題有哪些”吧!
CPU 與內存
CPU ( Central Processing Unit )是一塊超大規模的集成電路板,是計算機的核心部件,承載著計算機的主要運算和控制功能,是計算機指令的最終解釋模塊和執行模塊。
我們知道文件都有文件名與數據,這在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。
用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;
元數據,則是文件的附加屬性,如文件大小、創建時間、所有者等信息;
在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但其并不包含文件名,inode 號即索引節點號)才是 \文件的唯一標識而非文件名。文件名僅是為了方便人們的記憶和使用,系統或程序通過 inode 號尋找正確的文件數據塊
為解決文件的共享使用,Linux 系統引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。鏈接為 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增加權限安全及節省存儲等好處。若一個 inode 號對應多個文件名,則稱這些文件為 硬鏈接。換言之,硬鏈接就是同一個文件使用了多個別名。
由于硬鏈接是有著相同 inode 號僅文件名不同的文件,因此硬鏈接存在以下幾點特性:
文件有相同的 inode 及 data block;
只能對已存在的文件進行創建;
不能交叉文件系統進行硬鏈接的創建;
不能對目錄進行創建,只可對文件創建;
刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。
ln -s source dist # 建立軟連接 ln source dist # 建立硬連接
硬鏈接: 與普通文件沒什么不同,inode 都指向同一個文件在硬盤中的區塊。建立硬鏈接時,鏈接文件和被鏈接文件必須位于同一個文件系統中,并且不能建立指向目錄的硬鏈接
軟鏈接: 保存了其代表的文件的絕對路徑,是另外一種文件,在硬盤上有獨立的區塊,訪問時替換自身路徑。(簡單地理解為 Windows 中常見的快捷方式)
kill進程殺不掉的原因
進程已經成為僵死進程,當它的父進程將它回收或將它的父進程kill掉即可在ps輸出看不到了;
進程正處在內核狀態中,Linux進程運行時分內核和用戶兩種狀態,當進程進入內核狀態后,會屏蔽所有信號,包括SIGKIL,所以這個時候kill -9也變得無效了
swap分區的作用
Swap分區在系統的物理內存不夠用的時候,把硬盤空間中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap分區中,等到那些程序要運行時,再從Swap分區中恢復保存的數據到內存中。 比如將內存想象成一個杯子,程序運行時產生的數據作為水放進杯子中,當我們運行的程序過多,或是處理的數據量過大時,杯子慢慢變滿,導致乘不下了,此時如果有swap分區的話,就如同將過多的水倒入swap分區這個杯子中。
硬盤分區為主分區+擴展分區 所有的邏輯分區都在擴展分區內;
Swap分區,即交換區,系統在物理內存不夠時,與Swap進行交換。 其實,Swap的調整對Linux服務器,特別是Web服務器的性能至關重要。通過調整Swap,有時可以越過系統性能瓶頸,節省系統升級費用。
建立Swap分區有兩種方法
新建磁盤分區作為swap分區
用文件作為swap分區
Swap配置對性能的影響
分配太多的Swap空間會浪費磁盤空間,而Swap空間太少,則系統會發生錯誤
Swap空間應大于或等于物理內存的大小,最小不應小于64M,通常Swap空間的大小應是物理內存的2-2.5倍
如果有多個Swap交換區,Swap空間的分配會以輪流的方式操作于所有的Swap,這樣會大大均衡IO的負載,加快Swap交換的速度。如果只有一個交換區,所有的交換操作會使交換區變得很忙,使系統大多數時間處于等待狀態,效率很低。
Linux命令查找出日志文件中訪問量最大的10個ip
linux 命令如下:
cat test.log|awk -F" " '{print $2}'|sort|uniq -c|sort -nrk 1 -t' '|awk -F" " '{print $2}'|head -10
問題剖析:
cat *.log將文本內容打印到屏幕
使用awk命令可以按照分割符將一行分割為多個列,第一列用$1表示,第二列用$2表示,依次類推awk -F" " '{print $2} //表示用空格作為分隔符進行分割,打印出第2列
sort 進行排序,默認是按照ascii碼進行排序的
uniq -c 統計相鄰的行的重復數量,結果是類似 3 127.13.13.13,前面的數字代碼重復的行數sort|uniq -c //統計重復的行數
sort -n是按照數值進行由小到大進行排序, -r是表示逆序,-t是指定分割符,-k是執行按照第幾列進行排序 sort -nrk 1 -t' '
使用awk命令可以按照分割符將一行分割為多個列,第一列用$1表示,第二列用$2表示,依次類推awk -F" " '{print $2}' //表示用空格作為分隔符進行分割,打印出第2列
head -n表示取前n個head -10
Linux常見命令
iftop:linux網絡流量查看命令
top:查看cpu
ps -le:查看所有正在運行的進程;ps aux|grep 篩選條件
tail -f:查看日志
free:查看內存
uptime:查看系統負載
top詳細
系統負載(三個數分別代表1分鐘、5分鐘、15分鐘的平均值,數值越小負載越低)
序號 列名 含義 a PID 進程id b PPID 父進程id c RUSER Real user name d UID 進程所有者的用戶id e USER 進程所有者的用戶名 f GROUP 進程所有者的組名 g TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ? h PR 優先級 i NI nice值。負值表示高優先級,正值表示低優先級 j P 最后使用的CPU,僅在多CPU環境下有意義 k %CPU 上次更新到現在的CPU時間占用百分比 l TIME 進程使用的CPU時間總計,單位秒 m TIME+ 進程使用的CPU時間總計,單位1/100秒 n %MEM 進程使用的物理內存百分比 o VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES p SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。 q RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA r CODE 可執行代碼占用的物理內存大小,單位kb s DATA 可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb t SHR 共享內存大小,單位kb u nFLT 頁面錯誤次數 v nDRT 最后一次寫入到現在,被修改過的頁面數。 w S 進程狀態。 D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程 x COMMAND 命令名/命令行 y WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名 z Flags 任務標志,
到此,相信大家對“Linux常見的問題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。