常見的頁面調度算法有哪些?請至少列出三種。如何判斷一個調度算法的好壞?
解答:
1)常見的頁面調度算法
(1)隨機算法rand(Random Algorithm)。
(2)先進先出調度算法(FIFO)
(3)最近最少調度算法LFU(Least Frequently Used Algorithm )
(4)最近最不經常使用調度算法LRU(Least Recently Used Algorithm)
(5)最優替換算法OPT(Optimal replacement Algorithm)
2)判斷一個頁面調度算法好壞的評判標準
一是命中率要高,二是算法要容易實現。
要提升一個調度算法的命中率,首先要是這種算法能正確反映程序的局部性,其次是這種算法要可以充分利用主存中頁面調度狀況的歷史信息,或者可以預測主存中將要發生的頁面調度狀況。
列出頁面調度(替換)算法主要的應用
(1) 虛擬存儲器中,主存頁面(或程序段)的替換
(2) Cache中的塊替換
(3) 虛擬存儲器的快慢表中,快表的替換
(4) 虛擬存儲器中,用戶基地址寄存器的替換
在Web服務中,負載均衡的基本做用是什麼?列舉一個你所知道的負載均衡的軟件方法或理論
負載均衡的定義
負載均衡是由多臺服務器以對稱的方式組成一個服務器集合,每臺服務器都具備等價的地位,均可以單獨對外提供服務而無須其餘服務器的輔助。經過某種負載分擔技術,將外部發送來的請求均勻分配到對稱結構中的某一臺服務器上,而接收到請求的服務器獨立地迴應客戶的請求。
負載均衡的做用
若是你發現你的Web站點負載量很是大時,應當考慮使用負載均衡技術來將負載平均分攤到多個內部服務器上。若是有多個服務器同時執行某一個任務時,這些服務器就構成一個集羣(clustering)。使用集羣技術能夠用最少的投資得到接近於大型主機的性能。
目前比較經常使用的負載均衡技術主要有:
基於DNS的負載均衡 反向代理負載均衡 基於NAT的負載均衡技術
軟件如:Hearbeat,NGINX,keepalived,haproxy,cluster前端
服務器負載均衡有哪些實現方法?
答案: A:實現服務器負載均衡有多種方法,常見的方法有:
1.基於DNS 輪詢的方法:即在DNS 服務器中對同一域名設置多條DNS A 記錄,經過DNS 的輪詢機制實現服務器負載均衡。
2.基於服務器集羣的方法;
3.基於應用軟件的實現方法,在應用軟件設計中就考慮了多服務器之間的協同工做與任務調度。這種方法通常會有一臺服務器做爲中樞對訪問請求進行調度,同時要求在應用層支持訪問重定向或任務調度、跳起色制。
4.採用專門的L4/L7 層交換機來實現,也即咱們常說的負載均衡器。通常都是經過在L4/L7 層交換機做地址轉換(NAT)來實現。
5.基於代理方式的負載均衡算法。node
有文件file1
一、查詢file1裏面空行的所在行號
grep ^$ file
二、查詢file1以abc結尾的行
grep abc$ file1
三、打印出file1文件第1到第三行
sed -n '1,3p'
head -3 file1
如何將本地80端口的請求轉發到8080端口,當前主機IP爲192.168.2.1
-A PREROUTING -d 124.42.60.109 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.18:9000
編寫個shell腳本將/usr/local/test 目錄下大於100K的文件轉移到/tmp目錄下
ls -l aa.txt | awk '{print $5}'
===============================
#!/bin/bash
for file in `ls ${DIR}`
do
if [`ls -l ${file}| awk '{print $5}'` > 1000 ] then
mv $file /tmp
fi
done
=============================================
raid原理
RAID 0:無差錯控制的帶區組
將一個數據分爲兩份分別放在兩塊硬盤上。不須要計算校驗碼。
RAID 1:鏡象結構
相似於備份模式,一個數據被複制到兩塊硬盤上。
RAID10:高可靠性與高效磁盤結構
一個帶區結構加一個鏡象結構,由於兩種結構各有優缺點,所以能夠相互補充。
主要用於容量不大,但要求速度和差錯控制的數據庫中。
RAID5:分佈式奇偶校驗的獨立磁盤結構
它的奇偶校驗碼存在於全部磁盤上,任何一個硬盤損壞,均可以根據其它硬盤上的校驗位來重建損壞的數據。支持一塊盤掉線後仍然正常運行。
oracle數據庫備份方式
物理備份:開啓網絡監聽,備份數據庫文件。
RMAN備份:經過表空間文件在RMAN模式對ORACLE數據備份。
如何查看佔用端口8080的進程lsof -i:8080linux
你使用過監控軟件嗎?說說其特色
使用nagios對服務器進行監控,其特色可實時實現手機短信、電子郵件、MSN、飛信報警。
使用cacti對流量進行監控。ios
1•簡述樹的深度優先算法、廣度優先算法,及非遞歸實現的特色。
深度優先搜索法是優先擴展還沒有擴展的且具備最大深度的結點;廣度優先搜索法是在擴展完第K層的結點之後才擴展K+1層的結點。主要不一樣點在於深度優先須要使用棧,廣度優先使用隊列FIFO。
非遞歸實現要求程序本身設置棧來保存要用到的數據,與遞歸不一樣的是遞歸須要系統來完成數據和程序執行狀態在棧中的保存。非遞歸能夠減小數據的冗餘以及系統設置棧帶來的巨大開銷。web
2•在文件系統中,元數據(好比ext2中的inode)的基本做用是什麼?ext2跟ext3的根本區別是什麼?
記錄數據的Modify,Access,Create times.以及記錄數據的存放塊區。而且經過元數據的加鎖機制等能夠保證數據的一致性。
ext3是ext2的擴展,主要區別是ext3加入了日誌系統。它容許以回寫(writeback)預約(ordered),數據(data)三種方式記錄日誌,默認爲預約。並默認在日誌添滿1/4,或某一個日誌記時器超時時提交日誌。
3•在web服務中,負載均衡的基本做用是什麼?請舉例你熟悉的一款負載均衡軟件或者實現方案,簡述它們的實現原理。(這題後半部分爲開放性,我也沒記多深,大概就這樣)
因爲系統服務訪問量和帶寬的暴增,服務器的TCP/IP協議棧,服務器系統的低效和處理器的低效便成爲了瓶頸。所以負載均衡集羣的出現將服務均勻地分配給提供同一種服務的各個服務器,從而下降單個服務器的負擔。
LVS(Linux Vitual Server):LVS採用GPL協議,能夠自由開發。大體分爲三層:
1.負載調度器:對外的前端機使用IPVS(IP負載均衡)軟件,採用3種IP負載均衡技術和8種負載調度算法。其中負載均衡技術如直接路由法 VS/DR,能夠經過改寫請求的MAC地址,將請求發送到真實的服務器,這樣有效地提升了集羣系統的伸縮性和吞吐量。8種調度算法如加權最少連接法,動態 地將請求發送到目前連接最少的真實服務器上,並經過加權來優化算法,很好地提升性能。
2.服務器池:經過增長服務器池的結點數目,每每性能會成線性的增加。有效地解決了服務的伸縮性。
3.共享存儲:數據庫或是網絡文件系統,也有多是分佈式文件系統。數據庫保證併發訪問的一致性,靜態數據可存在網絡文件系統如NFS/CIFS 中,如系統規模大,可使用分佈式文件系統存儲。並且共享存儲對於大多數狀況下的讀密集服務來說能夠提供大容量的cache,所以訪問速度接近本地磁盤。
另外還有基於HTTPS的安全系統管理WEB界面,便 於系統管理員進行集羣的管理和操做。
4•數據庫事務的四大特性是什麼?請你簡單舉例對一個徹底不懂數據庫的人解釋這四個特性。投數據庫管理員(DBA)必答。
事務的:原子性、一致性、分離性、持久性算法
數據庫死鎖原理
根據操做系統中的定義:死鎖是指在一組進程中的各個進程均佔有不會釋放的資源,但因互相申請被其餘進程所站用不會釋放的資源而處於的一種永久等待狀態。shell
如何查看佔用80端口的進程
netstat -an|grep 80
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
以上腳本能夠清除80端口的進程數據庫
數據庫查詢排列
sum求和
count總數
group by 按....排列
order by desc 降序排列安全
掛載光驅
mount -t iso9660 /dev/hdc /mnt/cdrom
增長路由 route addbash
查看路由表 route -n # 查看路由表
時間同步服務器/usr/sbin/ntpdate 210.72.145.44 > /dev/null
linux支持4G以上內存
緣由:
X86系統默認尋址能力的限制
解決辦法:
安裝具備PAE(物理尋址擴展)功能的內核
1) 命令行下運行內核安裝命令 'yum install kernel-PAE'。
2) 編輯啓動配置文件 'vi /etc/grub.conf',修改default值爲0。這樣的作的目的是讓kernel-PAE作爲默認啓動內核.
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.1.4.el5PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-53.1.4.el5PAE ro root=LABEL=/1
initrd /initrd-2.6.18-53.1.4.el5PAE.img
title CentOS (2.6.18-8.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/1
initrd /initrd-2.6.18-8.el5.img
3) 保存配置,重啓機器.
ip配置
建議經過終端字符方式下來修改
一修改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
IPADDR=192.168.1.33
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
USERCTL=no
PEERDNS=no
TYPE=Ethernet
~
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.2.34
NETMASK=255.255.255.0
USERCTL=no
PEERDNS=no
TYPE=Ethernet
NETWORK=192.168.2.0
BROADCAST=192.168.2.255
修改網關
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=Aaron
GATEWAY=192.168.1.1
從新啓動網絡配置
/etc/init.d/network restart
添加IP地址:ifconfig eth0 IP netmask 子網掩碼 broadcast 廣播地址
查看網卡信息: route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
查看物理網卡:mii-tool
重啓eth0: ifup eth0
查看eth0信息:ethtool eth0
test@test1.com向test@test2.com發送郵件過程(大題)
test@test1.com ----------------DNS-------------------------test@test2.com DNS是dns
來自test@test1.com 域的 郵件 test@test1.com主機先看是不是給本地的若是不是 找DNS 發給外面的域 若是是則發給本地主機
test@test2.com 也同樣
咱們能夠正常訪問客戶網站,可是客戶沒法訪問,檢查服務器和網絡配置都沒有問題,該如何向客戶解釋並解決。(大題)
請客戶檢查本地網絡是否正常,若是不正常,則說明是因爲客戶本地網絡致使的,若是正常,則說明可能因爲電信DNS部分地區不能正常解析致使的,能夠這樣向客戶解釋:可能因爲電信DNS部分地區不能正常解析致使沒法訪問,咱們馬上提交相關部門處理,請您留下聯繫方式,測試訪問正常後通知您。
HTTP403錯誤
HTTP 400 -請求無效
HTTP 403 -禁止訪問
HTTP 404-沒法找到文件
HTTP 500 -內部服務器錯誤
HTTP 502 -網關錯誤
端口範圍
0-255 公用端口
255-1023 用於各個公司
1023-49151 已註冊端口號
49151-66536 動態或專用端口號
FTP下查看文件列表命令
ls:列出遠程機的當前目錄。
cd:在遠程機上改變工做目錄。
lcd:在本地機上改變工做目錄。
close:終止當前的ftp會話。
hash:每次傳輸完數據緩衝區中的數據後就顯示一個#號。
get(mget):從遠程機傳送指定文件到本地機。
put(mput):從本地機傳送指定文件到遠程機。
quit:斷開與遠程機的鏈接,並退出ftp
有文件file1
一、查詢file1裏面空行的所在行號
awk ‘{if($0~/^$/)print NR}’ file
or
grep -n ^$ file |awk ‘BEGIN{FS=」:」}{print $1}’
二、查詢file1以abc結尾的行
grep abc$ file1
三、打印出file1文件第1到第3行
sed -n ’1,3p’ file1
head -3 file1
如何將本地80端口的請求轉發到8080端口,當前主機IP爲192.168.2.1
-A PREROUTING -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.18:9000
編寫個shell腳本將/usr/local/test 目錄下大於100K的文件轉移到/tmp目錄下 #!/bin/bash for file in `ls /root` do if [ -f $file ]; then if [ `ls -l $file|awk '{print $5}'` > 10000 ]; then mv $file /tmp/ fi fi done