国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Linux通用系統(tǒng)優(yōu)化

Linux通用系統(tǒng)優(yōu)化


一、編譯選項(xiàng)

 

"etc/profile"文件含有系統(tǒng)大量的環(huán)境和啟動(dòng)程序的配置信息。你在該文件中進(jìn)行的配置,可以通過申請全局環(huán)境變量來實(shí)現(xiàn)。因此,在該文件中設(shè)置優(yōu)化標(biāo)志,是一種明智的選擇。要想使x86程序獲得最佳性能,可以在編譯時(shí),使用最佳的優(yōu)化選項(xiàng)-O9 。許多程序的"Makefile"文件中已經(jīng)含有-O2選項(xiàng),而-O9使編譯器采用最高級別的優(yōu)化。盡管它將增加最終程序的大小,但這樣可以獲得更高的運(yùn)行速度。編譯時(shí),使用"-fomit-frame-pointer"選項(xiàng),程序運(yùn)行時(shí),訪問變量時(shí)將使用堆棧。但是,使用這一選項(xiàng),生產(chǎn)的代碼將無法調(diào)試。使用"-mcpu=cpu_type"和"-march=cpu_type"選項(xiàng),Gcc將針對這種型號CPU進(jìn)行專門的優(yōu)化,但生成的代碼只能在所指定的CPU或更高系列的CPU上運(yùn)行。當(dāng)我們采用 -O9來編譯程序時(shí),或許文件字節(jié)數(shù)是最大的,但是往往其運(yùn)行速度也是最快的。根據(jù)不同的機(jī)器架構(gòu),你可以把下面的語句加入 /etc/profile 。

 

對于CPU i686或PentiumPro、Pentium II、Pentium III等:

CFLAGS=‘-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro

-march=pentiumpro -fomit-frame-pointer -fno-exceptions’

 

對于CPU i586或Pentium:

CFLAGS=‘-O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops

-fomit-frame-pointer -fforce-mem -fforce-addr -malign-double -fno-exceptions’

 

對于CPU i486:

FLAGS=‘-O3 -funroll-all-loops -malign-double -mcpu=i486 -march=i486

-fomit-frame-pointer -fno-exceptions’

 

在進(jìn)行完以上設(shè)置之后,緊接著把"CFLAGS LANG LESSCHARSET"加入到"etc/profile"文件中的"export"行中:

export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL INPUTRC CFLAGS

LANG LESSCHARSET

 

然后,重新登錄,這時(shí),環(huán)境變量CFLAGS已經(jīng)被賦值,編譯器和其它配置工具可以使用它。對Pentium(Pro/II/III)的優(yōu)化必須使用egcs或pgcc編譯器。Linux的缺省安裝中,已經(jīng)裝上了egcs,所以無需擔(dān)心。

 

另外,安裝程序時(shí),使用 tarball 格式總要比 RPM 格式來得好,因?yàn)椋?tarball 需要重新編譯,能針對你的機(jī)器架構(gòu)作優(yōu)化,得到最好的性能。

________________________________________

 

二、重新編譯內(nèi)核

 

一般的 Linux 發(fā)行商發(fā)布的 Linux 版本,其內(nèi)核總是會帶有一些對你來說不是很實(shí)用的東西,例如對HAM Radio的支持,對 Token Ring 的支持等??梢圆榭聪旅娴膬蓚€(gè)網(wǎng)站的資料:

Linux Kernel Howto: www.linuxdoc.org/HOWTO/Kernel-HOWTO.html

Linux Kernel : www.kernel.org

 

編輯/usr/src/linux/Makefile文件,可以根據(jù)具體的cpu優(yōu)化內(nèi)核編譯。以下的參數(shù)設(shè)置將得到優(yōu)化的內(nèi)核性能。

 

① vi +18 /usr/src/linux/Makefile ,將HOSTCC =gcc改為 HOSTCC =egcs.

 

② vi +25 /usr/src/linux/Makefile

將CC =$(CROSS_COMPILE)gcc D__KERNEL__ -I$(HPATH)

改為 CC =$(CROSS_COMPILE)egcs D__KERNEL__ -I$(HPATH).

 

③ vi +90 /usr/src/linux/Makefile

將CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer

改為CFLAGS = -Wall -Wstrict-prototypes -O9 -funroll-loops -ffast-math

-malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer

-fno-exceptions

 

④ vi +19 /usr/src/linux/Makefile

將HOSTCFLAGS =-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer

改為HOSTCFLAGS =-Wall -Wstrict-prototypes -O9 -funroll-loops -ffast-math

-malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer

-fno-exceptions

 

根據(jù)以上修改后的makefile文件重新編譯內(nèi)核將得到較優(yōu)的性能。

________________________________________

 

三、停止不使用的服務(wù)

 

Sendmail, httpd, crond, kudzu, mysql, portmap, postgresql, smb, snortd, webmin,

inetd (或者 xinetd) 等都是很棒的程序,但是如果你不會使用他們,干嗎要讓他們占用您寶貴的資源呢?而且,這些程序都會帶來安全隱患。一般說來,一套"干凈"的 Linux 系統(tǒng),只需要gpm, network, syslog, ssh 和 xfs。如果臨時(shí)有需要,就手工啟動(dòng)好了。這些啟動(dòng)腳本一般都在/etc/rc.d/init.d目錄下。

 

檢查自己的機(jī)器上使用中的服務(wù),可以采用 nmap 工具掃描。

 

[xyj@freelamp.com]$ nmap -p1-65535 211.94.129.28

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )

Interesting ports on freelamp.com (211.94.129.28):

(The 65492 ports scanned but not shown below are in state: closed)

---Edited version of the output due to space considerations--

Port State Service

...

514/tcp open shell

1025/tcp open listen

1099/tcp open unknown

1214/tcp open unknown

...

檢查特定端口上正在運(yùn)行的程序名,可以采用:

[root@freelamp.com /root]# netstat -anp|more

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

....

tcp 0 0 203.199.66.200:8007 203.199.66.197:1060 CLOSE 1005/java

tcp 0 0 203.199.66.200:22 203.199.66.197:3768 ESTABLISHED 1381/sshd

tcp 0 0 203.199.66.200:23 192.168.57.46:1546 ESTABLISHED 1229/in.telnetd: 19

....

最后一列顯示運(yùn)行的程序及其 PID。

 

我們還可以采用 ps 命令檢查機(jī)器上正在運(yùn)行的守護(hù)程序:

 

[root@freelamp.com root]# ps xc -u 0

PID TTY STAT TIME COMMAND

...

1475 ? S 0:02 sendmail

1498 ? S 0:04 gpm

16539 ? S 0:01 httpd

...

________________________________________

 

四、優(yōu)化磁盤

 

1、優(yōu)化分區(qū)

在安裝系統(tǒng)之前,您就需要對硬盤做好恰當(dāng)?shù)囊?guī)劃。劃分一定的文件系統(tǒng),不僅僅是系統(tǒng)本身的需要,而且在安全層面上也十分有意義。在Linux系統(tǒng)中,我們可以自由地組織磁盤分區(qū)。一個(gè)優(yōu)化的分區(qū)策略,可以很好地改進(jìn)Linux系統(tǒng)的性能,減少磁盤碎片,提高磁盤I/O能力。根據(jù)磁盤的特點(diǎn),我們知道越是靠磁盤外部的柱面,旋轉(zhuǎn)越快,而且每次旋轉(zhuǎn)時(shí),磁盤讀寫頭可以覆蓋較多的區(qū)域,也就意味著靠外部的柱面可以得到較好的性能。所以在分區(qū)時(shí),我們應(yīng)該考慮將訪問頻率高的,對系統(tǒng)性能影響相對較大的分區(qū)置于磁盤的靠外部分。同時(shí),為了減少磁盤碎片,應(yīng)將內(nèi)容經(jīng)常改變的目錄放在單獨(dú)的分區(qū)。從方便備份數(shù)據(jù)的角度考慮,因?yàn)楹芏鄠浞莨ぞ邔φ麄€(gè)分區(qū)進(jìn)行備份的效率要高,所以我們應(yīng)將Linux系統(tǒng)的幾個(gè)主要的目錄作為單獨(dú)的文件系統(tǒng),為它們各自分配一個(gè)區(qū)。推薦的分區(qū)策略如圖一:

 

在上圖中,磁盤還有一部分未分區(qū)的空間,為什么不在安裝系統(tǒng)時(shí),將整個(gè)磁盤分區(qū)呢?現(xiàn)在的硬盤空間比較大,而在安裝系統(tǒng)時(shí),也許你所安裝的文件加上以后增長所需要的空間用不到整個(gè)磁盤存儲空間。保留一部分未分區(qū)空間,當(dāng)以后有新的需要時(shí),就可以用fdisk重新將之分區(qū)。在分區(qū)時(shí),需要注意的是,根據(jù)系統(tǒng)將來運(yùn)行的需要或過去的經(jīng)驗(yàn)來估計(jì)各個(gè)分區(qū)的大小,以免將來空間不夠。

 

/dev/hda5 swap swap defaults,pri=5 0 0

/dev/hdc5 swap swap defaults,pri=5 0 0

 

當(dāng)然,如果你的系統(tǒng)內(nèi)存足夠大,而你的系統(tǒng)又遠(yuǎn)遠(yuǎn)用不了那么多的內(nèi)存,那也就用不到什么虛存了。分區(qū)時(shí)你就可以考慮去掉交換分區(qū)。不過作為一個(gè)Linux服務(wù)器,即使你的內(nèi)存足夠大,還是應(yīng)該設(shè)置交換分區(qū)。如果有多個(gè)硬盤的話,可以在每個(gè)硬盤上各開 swap 分區(qū),另外,建議 swap 分區(qū)的大小為物理內(nèi)存的兩倍。

 

2、使用hdparm改善Linux系統(tǒng)性能

 

如果你的Linux系統(tǒng)運(yùn)行于IDE硬盤,可以使用hdparm工具來提高磁盤I/O的性能。不過使用hdparm要小心,因?yàn)榭赡芷茐挠脖P上的數(shù)據(jù)。所以在使用hdparm之前,仔細(xì)閱讀你的硬盤手冊。根據(jù)你具體的硬盤規(guī)格來使用相應(yīng)的hdparm開關(guān)參數(shù)。對一塊UltraATA/66

EIDE 硬盤,其控制芯片支持多 PIO 模式和DMA,我們使用以下命令來調(diào)諧磁盤性能:

 

  1. /sbin/hdparm -x66 -d1 -u1 -m16 -c3 /dev/hda

 

選項(xiàng)說明:

① c3 :就是把硬盤的16位格式轉(zhuǎn)換為32位模式(32-bit mode w/sync)。控制數(shù)據(jù)如何從pci總線傳遞到控制器。

② m16 :改變硬盤的多路扇區(qū)的讀功能,-m16可以使得硬盤在一次i/o中斷中讀入16個(gè)扇區(qū)的數(shù)據(jù)(據(jù)具體硬盤而定)。

③ d1:打開DMA模式。

④ x66 :在支持UDMA-capable的硬盤中,這個(gè)參數(shù)可以支持雙DMA通道的數(shù)據(jù)傳輸模式。

⑤ u1 :Linux在處理磁盤中斷時(shí),可以unmask其他的中斷或者響應(yīng)其他中斷相關(guān)的任務(wù)。

查看以上的更改情況可以使用命令:

  1. /sbin/hdparm /dev/hda

測試磁盤I/O性能可以使用命令:

  1. /sbin/hdparm -tT /dev/hda

如果磁盤的性能有改進(jìn)的話,可以使用以下命令來保存設(shè)置:

  1. /sbin/hdparm -k1 /dev/hda

 

3、Linux下使用軟RAID

 

RAID(磁盤冗余陣列)是通過將數(shù)據(jù)分布在多個(gè)磁盤上來增強(qiáng)磁盤性能和可靠性的技術(shù)。如果你的系統(tǒng)沒有硬件RAID控制器的話,在Linux下可以通過軟件來實(shí)現(xiàn)RAID。RAID有很多的級別,不同的級別對硬件有不同的要求,相應(yīng)也會得到不同的性能和可靠性。RAID0為數(shù)據(jù)分割,數(shù)據(jù)塊被交替寫到磁盤,可以得到最好的讀寫性能,但是不提供數(shù)據(jù)冗余。RAID1為磁盤鏡像,寫到磁盤1中的一切也寫到磁盤2中,從任何一個(gè)磁盤都可以讀取。RAID3除了數(shù)據(jù)分割之外,還指定一個(gè)磁盤驅(qū)動(dòng)器來存儲奇偶信息。

 

在LINUX下通過軟件來實(shí)現(xiàn)RAID, 需要LINUX的內(nèi)核支持,可以通過編譯新內(nèi)核來添加對RAID的支持。然后還需編譯并安裝 raidtools

 

軟件包。raidtools 是可以初始化、啟動(dòng)、停止及控制 RAID 陣列的用戶級工具。下面是我們用兩塊IDE硬盤在LINUX內(nèi)核2.4上實(shí)現(xiàn)RAID0的方法。

 

設(shè)置分區(qū) 使用RAID0至少需要兩個(gè)分區(qū),它們位于不同的磁盤。最好做RAID0的兩個(gè)分區(qū)有相同的大小。創(chuàng)建分區(qū)時(shí),將分區(qū)類型指定為 "FD"。以使 Linux 內(nèi)核能將它們識別為 RAID 分區(qū),這樣,這些分區(qū)就可在每次引導(dǎo)時(shí)自動(dòng)被檢測并啟動(dòng)。如果您沒有以這種方式標(biāo)記 RAID 分區(qū),則在每次引導(dǎo)之后,必須首先輸入 "raidstart --all" 才能掛載 RAID 陣列。我們做成RAID0的兩個(gè)分區(qū)為hda5和hdc5。

 

編輯/etc/raidtab文件 創(chuàng)建/etc/raidtab文件以描述RAID陣列的配置信息。Linux 內(nèi)核使用這些信息在引導(dǎo)時(shí)自動(dòng)檢測并啟動(dòng) RAID 陣列,因此必須對創(chuàng)建的每個(gè) RAID 陣列進(jìn)行這種配置。將分區(qū)hda5和hdc5組成md0 RAID0陣列的配置文件如下:

 

raiddev /dev/md0

raid-level 0

nr-raid-disks 2

persistent-superblock 1

chunk-size 32

device /dev/hda5

raid-disk 0

device /dev/hdc5

raid-disk 1

 

在raidtab文件中,"raiddev" 條目指明要?jiǎng)?chuàng)建的 RAID 陣列;"nr-raid-disks"

 

指定陣列中的磁盤數(shù)目;"persistent-superblock" 設(shè)置為 1,告訴 raid 工具何時(shí)創(chuàng)建該卷;

 

"chunk-size" 以K字節(jié)指定 RAID0 使用的塊大小;

 

最后,要指定的是組成該陣列的設(shè)備即分區(qū)。

 

創(chuàng)建文件系統(tǒng)使用命令"# mkraid /dev/md0" 命令初始化/dev/md0分區(qū),同時(shí)將啟動(dòng)md0 RAID0陣列。接下來,即可在md0上創(chuàng)建你想要得文件系統(tǒng)。我們在Linux服務(wù)器上使用的是Reiserfs日志文件系統(tǒng),創(chuàng)建的命令為"# mkreiserfs /dev/md0"。

 

這樣,就可以像其它文件系統(tǒng)那樣來加載新創(chuàng)建的基于RAID0的文件系統(tǒng)了。

 

4 使用elvtune調(diào)諧磁盤I/O

 

在Linux內(nèi)核2.4以后的版本中,可以通過磁盤I/O的調(diào)度操作,來控制磁盤I/O的響應(yīng)時(shí)間和吞吐量。通過調(diào)整I/O請求在隊(duì)列中的最大等待時(shí)間,可以在響應(yīng)時(shí)間和吞吐量之間調(diào)諧。如果要求較少的響應(yīng)時(shí)間,那么吞吐量將降低,反之,較長的響應(yīng)時(shí)間則可以得到較大的吞吐量??梢允褂霉ぞ?/sbin/elvtune"來改變最大的響應(yīng)時(shí)間值。使用方法如下:

 

查看當(dāng)前的設(shè)置

  1. /sbin/elvtune /dev/hda1

修改當(dāng)前的配置

  1. /sbin/elvtune -r 2000 -w 4000 /dev/hda1

其中-r參數(shù)針對讀操作,-w參數(shù)針對寫操作.

可以通過命令"iostat -d -x

/dev/hda1"得到的平均信息(包括平均請求大小和平均隊(duì)列長度)來監(jiān)視以上I/O配置的效果,并調(diào)整配置,以得到最佳的性能。一般來講,對于讀寫頻繁,但操作的數(shù)據(jù)量較少的Linux服務(wù)器,且對實(shí)時(shí)性要求較高,那么可以將參數(shù)調(diào)小。反之如果對于讀寫不頻繁,但要求具有較大的吞吐量的Linux服務(wù)器,可以將參數(shù)調(diào)大,以獲得較大的吞吐量。

________________________________________

 

五、文件及文件系統(tǒng)調(diào)諧

 

1、塊大小

 

創(chuàng)建文件系統(tǒng)時(shí),可以指定塊的大小。如果將來在你的文件系統(tǒng)中是一些比較大的文件的話,使用較大的塊大小將得到較好的性能。將ext2文件系統(tǒng)的塊大小調(diào)整為4096byte而不是缺省的1024byte,可以減少文件碎片,加快fsck掃描的速度和文件刪除以及讀操作的速度。另外,在ext2的文件系統(tǒng)中,為根目錄保留了5%的空間,對一個(gè)大的文件系統(tǒng),除非用作日志文件,5%的比例有些過多。可以使用命令

  1. mke2fs -b 4096 -m 1 /dev/hda6

將它改為1%并以塊大小4096byte創(chuàng)建文件系統(tǒng)。

使用多大的塊大小,需要根據(jù)你的系統(tǒng)綜合考慮,如果系統(tǒng)用作郵件或者新聞服務(wù)器,使用較大的塊大小,雖然性能有所提高,但會造成磁盤空間較大的浪費(fèi)。比如文件系統(tǒng)中的文件平均大小為2145byte,如果使用4096byte的塊大小,平均每一個(gè)文件就會浪費(fèi)1951byte空間。如果使用1024byte的塊大小,平均每一個(gè)文件會浪費(fèi)927byte空間。在性能和磁盤的代價(jià)上如何平衡,要看具體應(yīng)用的需要。

 

2 不使用atime屬性

 

當(dāng)文件被創(chuàng)建,修改和訪問時(shí),Linux系統(tǒng)會記錄這些時(shí)間信息。記錄文件最近一次被讀取的時(shí)間信息,當(dāng)系統(tǒng)的讀文件操作頻繁時(shí),將是一筆不少的開銷。所以,為了提高系統(tǒng)的性能,我們可以在讀取文件時(shí)不修改文件的atime屬性。可以通過在加載文件系統(tǒng)時(shí)使用notime選項(xiàng)來做到這一點(diǎn)。當(dāng)以noatime選項(xiàng)加載(mount)文件系統(tǒng)時(shí),對文件的讀取不會更新文件屬性中的atime信息。設(shè)置noatime的重要性是消除了文件系統(tǒng)對文件的寫操作,文件只是簡單地被系統(tǒng)讀取。由于寫操作相對讀來說要更消耗系統(tǒng)資源,所以這樣設(shè)置可以明顯提高服務(wù)器的性能。注意wtime信息仍然有效,任何時(shí)候文件被寫,該信息仍被更新。

比如在你的系統(tǒng)中,要為/home文件系統(tǒng)設(shè)置notime選項(xiàng),可以修改/etc/fstab文件相應(yīng)的行如下:

LABEL=/home /home ext2 noatime 1 2

要使該設(shè)置立即生效,可運(yùn)行命令"#mount -oremount /home"。這樣以后系統(tǒng)讀取/home下的文 件時(shí)將不會再修改atime屬性。

 

3 調(diào)整緩沖區(qū)刷新參數(shù)

 

Linux內(nèi)核中,包含了一些對于系統(tǒng)運(yùn)行態(tài)的可設(shè)置參數(shù)。緩沖刷新的參數(shù)可以通過調(diào)整 /proc/sys/vm/bdflush文件來完成,這個(gè)文件的格式是這樣的:

  1. cat /proc/sys/vm/bdflush

30 64 64 256 500 3000 60 0 0

 

每一欄是一個(gè)參數(shù),其中最重要的是前面幾個(gè)參數(shù)。第一個(gè)數(shù)字是在"dirty"緩沖區(qū)達(dá)到多少的時(shí)候強(qiáng)制喚醒bdflush進(jìn)程刷新硬盤,第二個(gè)數(shù)字是每次讓bdflush進(jìn)程刷新多少個(gè)dirty塊。所謂dirty塊是必須寫到磁盤中的緩存塊。接下來的參數(shù)是每次允許bd flush將多少個(gè)內(nèi)存塊排入空閑的緩沖塊列表。 以上值為RedHat Linux 7.1中的缺省值。如何修改它們呢?對不同的系統(tǒng)有以下兩種方法

(1)# echo "100 128 128 512 5000 3000 60 0 0">/proc/sys/vm/bdflush

并將這條命令加到/etc/rc.d/rc.local文件中去。

(2)在/etc/sysctl.conf 文件中加入如下行: vm.bdflush = 100 128 128 512 5000 3000 60 0 0

以上的設(shè)置加大了緩沖區(qū)大小,降低了bdflush被啟動(dòng)的頻度,同時(shí)也增加了萬一系統(tǒng)崩潰丟失數(shù)據(jù)的危險(xiǎn)性。VFS的緩沖刷新是Linux文件系統(tǒng)高效的重要原因之一,如果性能對你真的很重要,應(yīng)該考慮調(diào)整這個(gè)參數(shù)。

 

4 調(diào)整文件句柄數(shù)和i-節(jié)點(diǎn)數(shù)

 

在一個(gè)大型的網(wǎng)站服務(wù)器其中,可能Linux默認(rèn)的同時(shí)可打開最大文件數(shù)不能滿足系統(tǒng)需要,我們可以通過調(diào)整文件句柄數(shù)和i-節(jié)點(diǎn)數(shù)來增加系統(tǒng)的缺省的限制。不同的Linux內(nèi)核版本有不同的調(diào)整方法。

在Linux內(nèi)核2.2.x中可以用如下命令修改:

  1. echo ‘8192’ > /proc/sys/fs/file-max
  2. echo ‘32768’ > /proc/sys/fs/inode-max

并將以上命令加到/etc/rc.c/rc.local文件中,以使系統(tǒng)每次重新啟動(dòng)時(shí)配置以上值。

在Linux內(nèi)核2.4.x中需要修改源代碼,然后重新編譯內(nèi)核才生效。編輯Linux內(nèi)核源代碼中的 include/linux/fs.h文件,將 NR_FILE

由8192改為 65536,將NR_RESERVED_FILES 由10 改為 128。編輯fs/inode.c 文件將 MAX_INODE

由16384改為262144。

一般情況下,最大打開文件數(shù)比較合理的設(shè)置為每4M物理內(nèi)存256,比如256M內(nèi)存可以設(shè)為16384,而最大的使用的i節(jié)點(diǎn)的數(shù)目應(yīng)該是最大打開文件數(shù)目的3倍到4倍。

 

5 使用內(nèi)存文件系統(tǒng)

 

在Linux中可以將一部分內(nèi)存當(dāng)作分區(qū)來使用,我們稱之為RamDisk。對于一些經(jīng)常被訪問的文件,而它們又不會被更改,可以將它們通過RamDisk放在內(nèi)存中,即可明顯地提高系統(tǒng)的性能。當(dāng)然你的內(nèi)存可要足夠大了。RamDisk有兩種,一種可以格式化,加載,在Linux內(nèi)核2.0/2.2就已經(jīng)支持,其不足之處是大小固定。另一種是內(nèi)核2.4才支持的,通過Ramfs或者tmpfs來實(shí)現(xiàn),它們不能被格式化,但是用起來靈活,其大小隨所需要的空間而增加或減少。這里主要介紹一下Ramfs和Tmpfs。

Ramfs顧名思義是內(nèi)存文件系統(tǒng),它工作于虛擬文件系統(tǒng)(VFS)層。不能格式化,可以創(chuàng)建多個(gè),在創(chuàng)建時(shí)可以指定其最大能使用的內(nèi)存大小。如果你的Linux已經(jīng)將Ramfs編譯進(jìn)內(nèi)核,你就可以很容易地使用Ramfs了。創(chuàng)建一個(gè)目錄,加載Ramfs到該目錄即可。

  1. mkdir -p /RAM1
  2. mount -t ramfs none /RAM1

缺省情況下,Ramfs被限制最多可使用內(nèi)存大小的一半??梢酝ㄟ^maxsize(以kbyte為單位)選項(xiàng)來改變。

  1. mkdir -p /RAM1
  2. mount -t ramfs none /RAM1 -o maxsize=10000

以上即創(chuàng)建了一個(gè)限定了最大使用內(nèi)存大小為10M的ramdisk。

Tmpfs是一個(gè)虛擬內(nèi)存文件系統(tǒng),它不同于傳統(tǒng)的用塊設(shè)備形式來實(shí)現(xiàn)的ramdisk,也不同于針對物理內(nèi)存的Ramfs。Tmpfs可以使用物理內(nèi)存,也可以使用交換分區(qū)。在Linux內(nèi)核中,虛擬內(nèi)存資源由物理內(nèi)存(RAM)和交換分區(qū)組成,這些資源是由內(nèi)核中的虛擬內(nèi)存子系統(tǒng)來負(fù)責(zé)分配和管理。Tmpfs就是和虛擬內(nèi)存子系統(tǒng)來"打交道"的,它向虛擬內(nèi)存子系統(tǒng)請求頁來存儲文件,它同Linux的其它請求頁的部分一樣,不知道分配給自己的頁是在內(nèi)存中還是在交換分區(qū)中。Tmpfs同Ramfs一樣,其大小也不是固定的,而是隨著所需要的空間而動(dòng)態(tài)的增減。使用tmpfs,首先你編譯內(nèi)核時(shí)得選擇"虛擬內(nèi)存文件系統(tǒng)支持(Virtual

memory filesystem support)" ,然后就可以加載tmpfs文件系統(tǒng)了。

  1. mkdir -p /mnt/tmpfs
  2. mount tmpfs /mnt/tmpfs -t tmpfs

為了防止tmpfs使用過多的內(nèi)存資源而造成系統(tǒng)的性能下降或死機(jī),可以在加載時(shí)指定tmpfs文件系統(tǒng)大小的最大限制。

  1. mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m

以上創(chuàng)建的tmpfs文件系統(tǒng)就規(guī)定了其最大的大小為32M。不管是使用ramfs還是tmpfs,必須明白的是,一旦系統(tǒng)重啟,它們中的內(nèi)容將會丟失。所以那些東西可以放在內(nèi)存文件系統(tǒng)中得根據(jù)系統(tǒng)的具體情況而定。

 

6 使用日志文件系統(tǒng)

 

如果Linux系統(tǒng)由于意外情況而沒有正常關(guān)機(jī),則可能引起文件系統(tǒng)中某些文件的元數(shù)據(jù)(meta-data即和文件有關(guān)的信息,例如:權(quán)限、所有者以及創(chuàng)建和訪問時(shí)間)遭到破壞。文件系統(tǒng)需要維護(hù)文件的元數(shù)據(jù)來保證文件的可組織和可存取,如果元數(shù)據(jù)處于不合理或不一致的狀態(tài),那么就不能訪問和存取文件。當(dāng)系統(tǒng)重新啟動(dòng)時(shí),fsck將掃描/etc/fstab文件中所列出的所有文件系統(tǒng),確保它們的元數(shù)據(jù)處于可用的狀態(tài)。如果發(fā)現(xiàn)元數(shù)據(jù)不一致,fsck將掃描和檢測元數(shù)據(jù),并糾正錯(cuò)誤。如果文件系統(tǒng)很大,這個(gè)過程將需要很長的時(shí)間。為解決這個(gè)問題,可以使用日志文件系統(tǒng)。日志文件系統(tǒng)用獨(dú)立的日志文件跟蹤磁盤內(nèi)容的變化,在寫入文件內(nèi)容的同時(shí)寫入文件的元數(shù)據(jù)。每次修改文件的元數(shù)據(jù)時(shí),都要先向稱為"日志"的數(shù)據(jù)結(jié)構(gòu)登記相應(yīng)的條目。這樣,日志文件系統(tǒng)就維護(hù)了最近更改的元數(shù)據(jù)的記錄。當(dāng)加載日志文件系統(tǒng)時(shí),如果發(fā)現(xiàn)了錯(cuò)誤,不會掃描整個(gè)文件系統(tǒng)的元數(shù)據(jù),而是根據(jù)日志檢查最近被更改的元數(shù)據(jù)。所以相對于傳統(tǒng)的文件系統(tǒng)(如ext2),日志文件系統(tǒng)大大地加快了掃描和檢測的時(shí)間。

Linux下可用的日志文件系統(tǒng)很多,如XFS,JFS,Reiserfs,ext3等等。日志文件系統(tǒng)主要被設(shè)計(jì)為服務(wù)器環(huán)境提供出色性能和高可用性。當(dāng)然,

Linux 工作站和家用機(jī)器也可從具有高性能的可靠日志文件系統(tǒng)中獲益。安裝日志文件系統(tǒng),一般需要下載相應(yīng)的壓縮包、為內(nèi)核打補(bǔ)丁、重新配置和重新編譯內(nèi)核。

詳細(xì)的安裝過程可訪問相應(yīng)文件系統(tǒng)的官方網(wǎng)站。

新版本的 Linux 都支持日志文件系統(tǒng),這類文件系統(tǒng)不僅提供文件完整性上快速恢復(fù),在讀寫速度上也較普通的 ext2 文件系統(tǒng)有很大提升。

文件的最后存取時(shí)間,對很多人來說沒有任何用處,因此,我們可以關(guān)閉操作系統(tǒng)記錄文件最后存取時(shí)間的功能,修改: /etc/fstab :

把 dev/hda6 /home ext2 defaults 1 2

改為:

/dev/hda6 /home ext2 defaults,noatime 1 2

________________________________________

 

六、關(guān)閉多余的虛擬控制臺

 

我們知道從控制臺切換到 X 窗口,一般采用 Alt-F7 ,為什么呢?因?yàn)橄到y(tǒng)默認(rèn)定義了 6 個(gè)虛擬控制臺,所以 X

就成了第7個(gè)。實(shí)際上,很多人一般不會需要這么多虛擬控制臺的,修改

/etc/inittab ,注釋掉那些你不需要的。

  1. Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

  1. 4:2345:respawn:/sbin/mingetty tty4
  2. 5:2345:respawn:/sbin/mingetty tty5
  3. 6:2345:respawn:/sbin/mingetty tty6

________________________________________

 

七、進(jìn)程限制"ulimit"參數(shù)

 

Linux對于每個(gè)用戶,系統(tǒng)限制其最大進(jìn)程數(shù)。可以在用戶根目錄下的".bashrc"文件或者實(shí)際使用與".bashrc"功能相當(dāng)?shù)膕hell的腳本中加入這種限制。為提高性能,可以設(shè)置超級用戶root的最大進(jìn)程數(shù)為無限。編輯".bashrc"文件(例如:vi

/root/.bashrc)并加入下面一行:

ulimit -u unlimited

然后退出,重新登錄。為了驗(yàn)證,可以以root身份登錄,然后鍵入: "ulimit –a",在最大用戶進(jìn)程數(shù)一項(xiàng)中應(yīng)該顯示"unlimited",例如:

[root@deep]# ulimit -a

core file size (blocks) 1000000

data seg size (kbytes) unlimited

file size (blocks) unlimited

max memory size (kbytes) unlimited

stack size (kbytes) 8192

cpu time (seconds) unlimited

max user processes unlimited * this line.

pipe size (512 bytes) 8

open files 1024

virtual memory (kbytes) 2105343

注意:你可能更傾向于在命令行鍵入"unlimit

–u"而不是把它加入到文件"/root/.bashrc"中。但為保險(xiǎn)起見,建議還是把它加入文件"/root/.bashrc"中。

一些更改用戶限制的例子如下:

ulimit -n 4096 將每個(gè)進(jìn)程可以打開的文件數(shù)目加大到4096,缺省為1024

ulimit -m 4096 限制每個(gè)進(jìn)程使用的內(nèi)存數(shù)。

________________________________________

 

八、其它方面的優(yōu)化

 

1 調(diào)諧buffermem

 

文件buffermen和內(nèi)核虛擬內(nèi)存子系統(tǒng)密切相關(guān)。文件/proc/sys/vm/buffermem控制多大內(nèi)存被用于緩沖區(qū)(百分?jǐn)?shù)表示)。內(nèi)核2.4的缺省值為::

"2 10 60"??梢园慈缦路椒ㄐ薷模?

  1. echo "70 10 60" >/proc/sys/vm/buffermem

并將之加到腳本文件/etc/rc.d/rc.local 中?;蛘咴?etc/sysctl.conf文件中加入

vm.buffermem = 70 10 60

第一個(gè)參數(shù)

70意味著至少分配70%的內(nèi)存用作緩沖區(qū)。后兩個(gè)參數(shù)保持系統(tǒng)的默認(rèn)值。第一個(gè)參數(shù)設(shè)置為多大合適,依賴于系統(tǒng)的內(nèi)存大小和系統(tǒng)高負(fù)載時(shí)內(nèi)存的使用情況(可用free監(jiān)視)。

 

2 關(guān)閉X 相關(guān)的軟件

 

除非有必要否則不要安裝圖形界面,如果安裝了把機(jī)器啟動(dòng)后的缺省界面為 Console :

修改: /etc/inittab 把

id:5:initdefault:

修改為:

id:3:initdefault:

________________________________________

 

結(jié)論:

 

系統(tǒng)優(yōu)化的哲學(xué)可以簡單的歸結(jié)為四個(gè)字:"少就是多";只運(yùn)行那些你需要的服務(wù),使用正確的應(yīng)用來完成任務(wù),使用命令行方式,只有充分精簡了你的系統(tǒng)后,你的系統(tǒng)性能才能充分發(fā)揮。Linux是一個(gè)靈活而又開放的系統(tǒng)。用戶可以針對具體的應(yīng)用環(huán)境,從系統(tǒng)的外圍到系統(tǒng)的

內(nèi)核進(jìn)行調(diào)諧。系統(tǒng)的外圍的調(diào)諧包括系統(tǒng)硬件的配置到系統(tǒng)安裝和系統(tǒng)服務(wù)的優(yōu)化等。系統(tǒng)內(nèi)核的調(diào)諧包括參數(shù)的修改和改進(jìn)系統(tǒng)的源代碼。我們除了針對系統(tǒng)內(nèi)外的調(diào)諧之外,還應(yīng)該針對不同的應(yīng)用進(jìn)行調(diào)諧,比如我們在針對用作mysql數(shù)據(jù)庫服務(wù)器的Linux系統(tǒng)的調(diào)諧中,針對mysql數(shù)據(jù)庫的特點(diǎn),按照本文的各個(gè)調(diào)諧方面外,另外還包括網(wǎng)絡(luò)的調(diào)諧,對應(yīng)用系統(tǒng)性能進(jìn)行了綜合調(diào)諧等。同樣針對不同應(yīng)用要做不同的調(diào)整,比如apache,oracle,mysql,informix等等。

取自"
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服