1)你平時在公司主要做什么?
1、公司服務器的日常維護,常見服務器部署搭建及維護
2、Mysql數據庫的日常運維工作,主從同步搭建,數據備份。
3、監控系統的搭建和維護,為新上線的服務寫自定義監控腳本
4、處理線上服務緊急故障,保證線上服務7*24穩定運行。
5、日常技術文檔編寫
2)你們原來公司的網站架構是怎樣的?
3)你對那一塊比較熟悉或者精通?
nginx shell 自動化運維比較熟悉
4) Squid、varnish等緩存服務器維護過嗎?squid緩存代理的原理是什么?緩存命中率怎么查看及清空緩存?
5)LVS的工作原理是什么?有哪些算法?
1、當客戶端的請求到達負載均衡器的內核空間時,首先會到達PREROUTING鏈。
2、當內核發現請求數據包的目的地址是本機時,將數據包送往INPUT鏈。
3、LVS由用戶空間的ipvsadm和內核空間的IPVS組成,ipvsadm用來定義規則,IPVS利用ipvsadm定義的規則工作,IPVS工作在INPUT鏈上,當數據包到達INPUT鏈時,首先會被IPVS檢查,如果數據包里面的目的地址及端口沒有在規則里面,那么這條數據包將經過INPUT鏈送至用戶空間,交給用戶空間的進程來處理。
4、如果數據包里面的目的地址及端口在規則里面,那么這條數據報文將被修改目的地址為事先定義好的后端服務器,並送往POSTROUTING鏈。
5、最后經由POSTROUTING鏈發往后端服務器。
rr wrr lc wlc LBLC 基於局部性的最少連接 LBLCR 基於局部性的帶復制功能的最少 sh 源地址hash dh 目標地址散列
6)Nginx日常的優化參數有哪些?Nginx動靜分離做過嗎?描述簡單的步驟?
1. worker_processes 8;nginx 進程數,建議按照cpu 數目來指定,一般為它的倍數 (如,2個四核的cpu計為8)。
2. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;為每個進程分配cpu,上例中將8 個進程分配到8 個cpu,當然可以寫多個,或者將一個進程分配到多個cpu。
3. worker_rlimit_nofile 65535;
這個指令是指當一個nginx 進程打開的最多文件描述符數目,理論值應該是最多打開文
件數(ulimit -n)與nginx 進程數相除,但是nginx 分配請求並不是那么均勻,所以最好與ulimit -n 的值保持一致。
現在在linux 2.6內核下開啟文件打開數為65535,worker_rlimit_nofile就相應應該填寫65535。
這是因為nginx調度時分配請求到進程並不是那么的均衡,所以假如填寫10240,總並發量達到3-4萬時就有進程可能超過10240了,這時會返回502錯誤。
使用epoll的I/O模型
5. worker_connections 65535;
每個進程允許的最多連接數, 理論上每台nginx 服務器的最大連接數為worker_processes*worker_connections。
6. keepalive_timeout 60;
keepalive 超時時間。
7)linux內核優化,你都有優化哪些參數?
8)你在維護網站的過程中共,曾經遇到過什么重大問題?怎樣解決的?
9)shell變成熟悉嗎?編寫一個自動化備份Mysql數據庫的腳本?
10)Mysql主從架構的原理是什么?如果主從不同步,報錯了,怎么恢復?
mysql配置優化 1)慢查詢日志
11)如果備份大數據Mysql數據文件?Mysql優化有哪些步驟?
12)FTP主被動模式的區別是什么?
ftp有兩種登錄方式:匿名登錄和授權登錄.使用匿名登錄時,用戶名為:anonymous,密碼為:任何合法email地址;使用授權登錄時,用戶名為用戶在遠程系統中的用戶帳號,密碼為用戶在遠程系統中的用戶密碼.
區別:使用匿名登錄只能訪問ftp目錄下的資源,默認配置下只能下載;而授權登錄訪問的權限大於匿名登錄,且上載、下載均可.
(2)ftp文件傳輸有兩種文件傳輸模式:ASCII模式和binary模式.ASCII模式用來傳輸文本文件,其他文件的傳輸使用binary模式.
(3)常用的ftp文件傳輸命令為:bin、asc、put、get、mput、mget、prompt、bye
13) Apache兩種工作模式的區別及優化?
prefork模式:這個多路處理模塊(MPM)實現了一個非線程型的、預派生的web服務器,它的工作方式類似於Apache 1.3。它適合於沒有線程安全庫,需要避免線程兼容性問題的系統。它是要求將每個請求相互獨立的情況下最好的MPM,這樣若一個請求出現問題就不會影響到其他請求。
work模式:此多路處理模塊(MPM)使網絡服務器支持混合的多線程多進程。由於使用線程來處理請求,所以可以處理海量請求,而系統資源的開銷小於基於進程的MPM。但是,它也使用了多進程,每個進程又有多個線程,以獲得基於進程的MPM的穩定性
14)Nagios、cacti維護過嗎?平時都監控些什么?
Cacti比較着重於直觀數據的監控,易於生成圖形,用來監控網絡流量、cpu使用率、硬盤使用率等
Nagios則比較注重於主機和服務的監控,並且有很強大的發送報警信息的功能
cacti偏重於網絡流量,系統負載方面的監控。而 nagios偏重於系統服務方面的監控,你可以在被監控的機器上寫自己的程序(shell,c 或 perl都可以) 。nagios則通過這些腳本來對服務進行監控。nagios可以和短信發送機配合用來監控規模較大的網站。
15)你們公司的網絡出口帶寬是多少?每天網站的PV、UV是多少?
pv:50W UV:6-8w 帶寬 50w/(24*60*60) 50M帶寬
16) 你覺得Linux運維工程師的職責是什么?
17)你為什么離職,離職的原因是什么?
18)你未來5-10年的職業規划是什么樣的?
19)keepalived的工作原理?
Keepalived是Linux下一個輕量級別的高可用解決方案,
Keepalived是Linux下一個輕量級別的高可用解決方案。高可用(High Avalilability,HA),其實兩種不同的含義:廣義來講,是指整個系統的高可用行,狹義的來講就是之主機的冗余和接管, 它與HeartBeat RoseHA 實現相同類似的功能,都可以實現服務或者網絡的高可用,但是又有差別,HeartBeat是一個專業的、功能完善的高可用軟件,它提供了HA 軟件所需的基本功能,比如:心跳檢測、資源接管,檢測集群中的服務,在集群節點轉移共享IP地址的所有者等等。HeartBeat功能強大,但是部署和使用相對比較麻煩, 與HeartBeat相比,Keepalived主要是通過虛擬路由冗余來實現高可用功能,雖然它沒有HeartBeat功能強大,但是Keepalived部署和使用非常的簡單,所有配置只需要一個配置文件即可以完成, 原理:
Keepalived工作在TCP/IP 參考模型的 三層、四層、五層,也就是分別為:網絡層, 傳輸層和應用層,根據TCP、IP參數模型隔層所能實現的功能,Keepalived運行機制如下: 在網絡層:我們知道運行這4個重要的協議,互聯網絡IP協議,互聯網絡可控制報文協議ICMP、地址轉換協議ARP、反向地址轉換協議RARP,在網絡層Keepalived在網絡層采用最常見的工作方式是通過ICMP協議向服務器集群中的每一個節點發送一個ICMP數據包(有點類似與Ping的功能),如果某個節點沒有返回響應數據包,那么認為該節點發生了故障,Keepalived將報告這個節點失效,並從服務器集群中剔除故障節點。 在傳輸層:提供了兩個主要的協議:傳輸控制協議TCP和用戶數據協議UDP,傳輸控制協議TCP可以提供可靠的數據輸出服務、IP地址和端口,代表TCP的一個連接端,要獲得TCP服務,需要在發送機的一個端口和接收機的一個端口上建立連接,而Keepalived在傳輸層里利用了TCP協議的端口連接和掃描技術來判斷集群節點的端口是否正常,比如對於常見的WEB服務器80端口。或者SSH服務22端口,Keepalived一旦在傳輸層探測到這些端口號沒有數據響應和數據返回,就認為這些端口發生異常,然后強制將這些端口所對應的節點從服務器集群中剔除掉。 在應用層:可以運行FTP,TELNET,SMTP,DNS等各種不同類型的高層協議,Keepalived的運行方式也更加全面化和復雜化,用戶可以通過自定義Keepalived工作方式,例如:可以通過編寫程序或者腳本來運行Keepalived,而Keepalived將根據用戶的設定參數檢測各種程序或者服務是否允許正常,如果Keepalived的檢測結果和用戶設定的不一致時,Keepalived將把對應的服務器從服務器集群中剔
20.什么是符號鏈接,什么是硬鏈接?符號鏈接與硬鏈接的區別是什么?
鏈接分硬鏈接和符號鏈接.
符號鏈接可以建立對於文件和目錄的鏈接.符號鏈接可以跨文件系統,即可以跨磁盤分區.符號鏈接的文件類型位是l,鏈接文件具有新的i節點.
硬鏈接不可以跨文件系統.它只能建立對文件的鏈接,硬鏈接的文件類型位是-,且硬鏈接文件的i節點同被鏈接文件的i節點相同.
21 簡述DNS進行域名解析的過程.
,客戶端發出DNS請求翻譯IP地址或主機名.DNS服務器在收到客戶機的請求后:
(1)檢查DNS服務器的緩存,若查到請求的地址或名字,即向客戶機發出應答信息;
(2)若沒有查到,則在數據庫中查找,若查到請求的地址或名字,即向客戶機發出應答信息;
(3)若沒有查到,則將請求發給根域DNS服務器,並依序從根域查找頂級域,由頂級查找二級域,二級域查找三級,直至找到要解析的地址或名字,即向客戶機所在網絡的DNS服務器發出應答信息,DNS服務器收到應答后現在緩存中存儲,然后,將解析結果發給客戶機.
(4)若沒有找到,則返回錯誤信息.4.系統管理員的職責包括那些?管理的對象是什么?
22.請描述Linux系統優化的12個步驟。
⑴登錄系統:不使用root登錄,通過sudo授權管理,使用普通用戶登錄。
⑵禁止SSH遠程:更改默認的遠程連接SSH服務及禁止root遠程連接。
⑶時間同步:定時自動更新服務器時間。
⑷配置yum更新源,從國內更新下載安裝rpm包。
⑸關閉selinux及iptables(iptables工作場景如有wan ip,一般要打開,高並發除外)
⑹調整文件描述符數量,進程及文件的打開都會消耗文件描述符。
⑺定時自動清理/var/spool/clientmquene/目錄垃圾文件,防止節點被占滿(c6.4默認沒有sendmail,因此可以不配。)
⑻精簡開機啟動服務(crond、sshd、network、rsyslog)
⑼Linux內核參數優化/etc/sysctl.conf,執行sysct -p生效。
更改字符集,支持中文,但是還是建議使用英文,防止亂碼問題出現。
⑾鎖定關鍵系統文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 處理以上內容后,把chatter改名,就更安全了。)
⑿清空/etc/issue,去除系統及內核版本登陸前的屏幕顯示。
23.描述Linux系統從開機到登陸界面的啟動過程
⑴開機BIOS自檢,加載硬盤。
⑵讀取MBR,MBR引導。
⑶grub引導菜單(Boot Loader)。
⑷加載內核kernel。
⑸啟動init進程,依據inittab文件設定運行級別
⑹init進程,執行rc.sysinit文件。
⑺啟動內核模塊,執行不同級別的腳本程序。
⑻執行/etc/rc.d/rc.local
⑼啟動mingetty,進入系統登陸界面。
24.生產場景如何對linux系統進行合理規划分區?
分區的根本原則是簡單、易用、方便批量管理。根據服務器角色定位建議如下:
①單機服務器:如8G內存,300G硬盤
分區: /boot 100-200M,swap 16G,內存大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db數據)
優點:數據盤和系統盤分開,有利於出問題時維護。
RAID方案:視數據及性能要求,一般可采用raid5折中。
②負載均衡器(如LVS等)
分區:/boot 100-200M,swap 內存的1-2倍,/ ,
優點:簡單方便,只做轉發數據量很少。
RAID方案:數據量小,重要性高,可采用RAID1
③負載均衡下的RS server
分區: /boot 100-200M,swap 內存的1-2倍,/
優點:簡單方便,因為有多機,對數據要求低。
RAID方案:數據量大,重要性不高,有性能要求,數據要求低,可采用RAID0
④數據庫服務器mysql及oracle如16/32G內存
分區:/boot 100-200M,swap 16G,內存的1倍,/ 100G,/data 剩余(存放db數據)
優點:數據盤和系統盤分開,有利於出問題時維護,及保持數據完整。
RAID方案:視數據及性能要求主庫可采取raid10/raid5,從庫可采用raid0提高性能(讀寫分離的情況下。)
⑤存儲服務器
分區:/boot 100-200M,swap 內存的1-2倍,/ 100G,/data(存放數據)
優點:此服務器不要分區太多。只做備份,性能要求低。容量要大。
RAID方案:可采取sata盤,raid5
⑥共享存儲服務器(如NFS)
分區:/boot 100-200M,swap 內存的1-2倍,/ 100G,/data(存放數據)
優點:此服務器不要分區太多。NFS共享比存儲多的要求就是性能要求。
RAID方案:視性能及訪問要求可以raid5,raid10,甚至raid0(要有高可用或雙寫方案)
⑦監控服務器cacti,nagios
分區:/boot 100-200M,swap 內存的1-2倍,/
優點:重要性一般,數據要求也一般。
RAID方案:單盤或雙盤raid1即可。三盤就RAID5,看容量要求加盤即可。
