天天看點

運維學習資料(1)

常見的頁面排程算法有哪些?請至少列出三種。如何判斷一個排程算法的好壞?

解答:

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.基于代理方式的負載均衡算法。

有檔案file1

1、查詢file1裡面空行的所在行号

grep ^$ file

2、查詢file1以abc結尾的行

grep abc$ file1

3、列印出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:8080

你使用過監控軟體嗎?說說其特點

使用nagios對伺服器進行監控,其特點可實時實作手機短信、電子郵件、MSN、飛信報警。

使用cacti對流量進行監控。

1•簡述樹的深度優先算法、廣度優先算法,及非遞歸實作的特點。

深度優先搜尋法是優先擴充尚未擴充的且具有最大深度的結點;廣度優先搜尋法是在擴充完第K層的結點以後才擴充K+1層的結點。主要不同點在于深度優先需要使用棧,廣度優先使用隊列FIFO。

非遞歸實作要求程式自己設定棧來儲存要用到的資料,與遞歸不同的是遞歸需要系統來完成資料和程式執行狀态在棧中的儲存。非遞歸可以減少資料的備援以及系統設定棧帶來的巨大開銷。

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)必答。

事務的:原子性、一緻性、分離性、持久性

資料庫死鎖原理

根據作業系統中的定義:死鎖是指在一組程序中的各個程序均占有不會釋放的資源,但因互相申請被其他程序所站用不會釋放的資源而處于的一種永久等待狀态。

如何檢視占用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 add

檢視路由表 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 

   splashimage=(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) 

        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

IPADDR=192.168.2.34

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

我們可以正常通路客戶網站,但是客戶無法通路,檢查伺服器和網絡配置都沒有問題,該如何向客戶解釋并解決。(大題)

請客戶檢查本地網絡是否正常,如果不正常,則說明是由于客戶本地網絡導緻的,如果正常,則說明可能由于電信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

awk ‘{if($0~/^$/)print NR}’ file

or

grep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’

3、列印出file1檔案第1到第3行

sed -n ’1,3p’ file1

-A PREROUTING  -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.18:9000

for file in `ls /root`

       if [ -f $file ]; then

              if [ `ls -l $file|awk '{print $5}'` >  10000 ];  then

                     mv $file /tmp/

              fi

       fi

done

本文轉自 ppabc  51CTO部落格,原文連結:http://blog.51cto.com/ppabc/1005175