Linux面試複習!為你的春招做準備!

2021-10-11 14:24:31 字數 2976 閱讀 9781

table of contentsgenerated with doctoc

cpu ( central processing unit )是一塊超大規模的積體電路板,是計算機的核心部件,承載著計算機的主要運算和控制功能,是計算機指令的最終解釋模組和執行模組。

我們知道檔案都有檔名與資料,這在 linux 上被分成兩個部分:使用者資料 (user data) 與元資料 (metadata)。

在 linux 中,元資料中的 inode 號(inode 是檔案元資料的一部分但其並不包含檔名,inode 號即索引節點號)才是 \檔案的唯一標識而非檔名。檔名僅是為了方便人們的記憶和使用,系統或程式通過 inode 號尋找正確的檔案資料塊

由於硬鏈結是有著相同 inode 號僅檔名不同的檔案,因此硬鏈結存在以下幾點特性:

ln -s source dist # 建立軟連線

ln source dist # 建立硬連線

程序已經成為僵死程序,當它的父程序將它**或將它的父程序kill掉即可在ps輸出看不到了;

程序正處在核心狀態中,linux程序執行時分核心和使用者兩種狀態,當程序進入核心狀態後,會遮蔽所有訊號,包括sigkil,所以這個時候kill -9也變得無效了

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 命令如下:

cat  test.log|awk -f" " ''|sort|uniq -c|sort -nrk 1 -t' '|awk -f" " ''|head -10
問題剖析:

cat *.log將文字內容列印到螢幕

使用awk命令可以按照分割符將一行分割為多個列,第一列用$1表示,第二列用$2表示,依次類推awk -f" " ' //表示用空格作為分隔符進行分割,列印出第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" " 『』 //表示用空格作為分隔符進行分割,列印出第2列

head -n表示取前n個head -10

系統負載(三個數分別代表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 任務標誌,參考 sched.h

春招面試複習 訊息佇列(七) 資料壓縮

kafka使用資料壓縮,最高可提公升約幾十倍吞吐量。資料壓縮不僅可節省儲存空間,還可用於提公升網路傳輸效能。這種使用壓縮提公升系統效能的方法,不僅在mq使用,日常開發也可。比如傳輸大量資料或要在磁碟 資料庫中儲存較大資料,這些情況下,都可考慮使用資料壓縮提公升效能,還能節省網路頻寬和儲存空間。程序間...

記2017 春招,令人難忘的面試經歷

離春招已經過去很久了,現在才寫總結確實有點晚了,因為學習比賽各種生活瑣事耽誤了很長時間。這次也算是勇敢地邁出自己的第一步,參加各大一線網際網路公司的春招。付出努力和汗水,最終還算拿到滿意的offer,以下是面試中遇到的問題還有自己的感想。c c 和測試方向 c c 1.虛函式的實現 虛函式表 2.建...

整理一下2019春招實習面試的面試問題。

解釋一下c 中多型的概念 c 中的多型是如何實現的 引用與指標的區別 談一談override和overload的概念區別 解釋一下鍊錶和佇列 談一談你了解的幾種鍊錶 談一談你了解的幾種佇列 單鏈表的優點和缺點 c 中哪些類是基於鍊錶和佇列實現的 談一談棧和堆的概念 實現一下氣泡排序,簡單陳述一下氣泡...