Linux 310內(nèi)核編譯選項(xiàng)_第1頁(yè)
Linux 310內(nèi)核編譯選項(xiàng)_第2頁(yè)
Linux 310內(nèi)核編譯選項(xiàng)_第3頁(yè)
Linux 310內(nèi)核編譯選項(xiàng)_第4頁(yè)
Linux 310內(nèi)核編譯選項(xiàng)_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——Linux310內(nèi)核編譯選項(xiàng)Linux-3.10-x86_64內(nèi)核配置選項(xiàng)簡(jiǎn)介

64-bitCONFIG_64BIT

編譯64位內(nèi)核.本文僅陳述x86_64(AMD64)平臺(tái)的內(nèi)核編譯,所以這個(gè)是必選項(xiàng).

kernel

Generalsetup常規(guī)設(shè)置

Cross-compilerCONFIG_CROSS_COMPILE

交織編譯工具前綴(譬如\相當(dāng)于使用\CROSS_COMPILE=arm-linux-\進(jìn)行編譯).除非你想配置后默認(rèn)自動(dòng)進(jìn)行交織編譯,否則不要使用此選項(xiàng).Local

version

-

append

to

kernel

release

tool

prefix

CONFIG_LOCALVERSION

在內(nèi)核版本后面加上自定義的版本字符串(最大64字符),可以用\-a\命令看到

AutomaticallyappendversioninformationtotheversionstringCONFIG_LOCALVERSION_AUTO

自動(dòng)在版本字符串(CONFIG_LOCALVERSION)后面添加版本信息(類似\格式),需要有perl以及git倉(cāng)庫(kù)支持Kernelcompressionmode

內(nèi)核鏡像的壓縮格式,可選Gzip/Bzip2/LZMA/XZ/LZO格式之一,推薦使用XZ格式.你的系統(tǒng)中需要有相應(yīng)的壓縮工具.Default

CONFIG_DEFAULT_HOSTNAME

設(shè)置默認(rèn)主機(jī)名,默認(rèn)值是\用戶可以隨后使用系統(tǒng)調(diào)用sethostname()來(lái)修改主機(jī)名.SupportCONFIG_SWAP

for

paging

of

anonymous

memory

(swap)hostname

使用交換分區(qū)或者交換文件來(lái)做為虛擬內(nèi)存SystemCONFIG_SYSVIPC

SystemV進(jìn)程間通信(IPC)支持,用于進(jìn)程間同步和交換數(shù)據(jù),大量程序需要這個(gè)功能.選\除非你確實(shí)知道自己在做什么POSIX

CONFIG_POSIX_MQUEUE

POSIX消息隊(duì)列是POSIXIPC的一部分,假使你想編譯和運(yùn)行那些使用\系統(tǒng)調(diào)用的程序(譬如為Solaris開發(fā)的程序),就必需開啟此選項(xiàng).POSIX消息隊(duì)列可以作為\文件系統(tǒng)掛載以便利用戶對(duì)隊(duì)列進(jìn)行操作.不確定的選\open

CONFIG_FHANDLE

用戶程序可以使用句柄(而非文件名)來(lái)追蹤文件(使用open_by_handle_at(2)/name_to_handle_at(2)系統(tǒng)調(diào)用),即使某文件被重命名,用戶程序仍舊可定位那個(gè)文件.此特性有助于實(shí)現(xiàn)用戶空間文件服務(wù)器(userspacefileserver).建議選\由于systemd和udev依靠于它.AuditingCONFIG_AUDIT

內(nèi)核審計(jì)(跟蹤每個(gè)進(jìn)程的活動(dòng)狀況)支持,某些安全相關(guān)的內(nèi)核子系統(tǒng)(例如SELinux)需要它.但是它會(huì)與systemd沖突,所以在使用systemd的系統(tǒng)上必需關(guān)閉.Enable

system-call

auditing

supportsupport

by

fhandle

syscalls

Message

Queues

V

IPC

CONFIG_AUDITSYSCALL

對(duì)系統(tǒng)調(diào)用進(jìn)行審計(jì).既可獨(dú)立使用,也可被其他內(nèi)核子系統(tǒng)(例如SELinux)使用.Make

audit

loginuid

immutable

CONFIG_AUDIT_LOGINUID_IMMUTABLE

審計(jì)時(shí)使用固定的loginuid.在使用systemd之類的系統(tǒng)上應(yīng)當(dāng)開啟(login服務(wù)由init進(jìn)程負(fù)責(zé)重啟),在使用SysVinit或Upstart之類的系統(tǒng)上應(yīng)當(dāng)關(guān)閉(login服務(wù)由系統(tǒng)管理員手動(dòng)重啟).OpenRC就是一個(gè)基于SysVinit的系統(tǒng).IRQsubsystemIRQ(中斷請(qǐng)求)子系統(tǒng)Expose

hardware/virtual

IRQ

mapping

via

debugfs

CONFIG_IRQ_DOMAIN_DEBUG

通過(guò)debugfs中的irq_domain_mapping文件向用戶顯示硬件IRQ號(hào)/LinuxIRQ號(hào)之間的對(duì)應(yīng)關(guān)系.僅用于開發(fā)調(diào)試.Support

CONFIG_SPARSE_IRQ

稀疏IRQ號(hào)支持.它允許在小型設(shè)備上(例如嵌入式設(shè)備)定義一個(gè)很高的CONFIG_NR_CPUS值,但依舊不希望占用太多內(nèi)核\memoryfootprint\一段可以被操作或被管理的內(nèi)存區(qū)域)的場(chǎng)合.稀疏IRQ也更適合NUMA平臺(tái),由于它以一種對(duì)NUMA更友好的方式分發(fā)中斷描述符.不確定的選\TimerssubsystemLinux內(nèi)核時(shí)鐘子系統(tǒng)Timertickhandling

內(nèi)核時(shí)鐘滴答處理程序,更多信息可以參考內(nèi)核源碼樹下的\Documentation/timers/NO_HZ.txt\文件Periodic

timer

ticks

(constant

rate,

no

dynticks)

sparse

irq

numbering

CONFIG_HZ_PERIODIC

無(wú)論CPU是否需要,都強(qiáng)制依照固定頻率不斷觸發(fā)時(shí)鐘中斷.這是最耗電的方式,不推薦使用Idle

dynticks

system

(tickless

idle)

CONFIG_NO_HZ_IDLE

CPU在空閑狀態(tài)時(shí)不產(chǎn)生不必要的時(shí)鐘中斷,以使處理器能夠在較低能耗狀態(tài)下運(yùn)行以儉約電力,適合于大多數(shù)場(chǎng)合

Fulldyntickssystem(tickless)

CONFIG_NO_HZ_FULL

完全無(wú)滴嗒:即使CPU在繁忙狀態(tài)也盡可能關(guān)閉所有時(shí)鐘中斷,適用于CPU在同一時(shí)間僅運(yùn)行一個(gè)任務(wù),或者用戶空間程序極少與內(nèi)核交互的場(chǎng)合.即使開啟此選項(xiàng),也需要額外設(shè)置\內(nèi)核命令行參數(shù)才能真正生效.Full

dynticks

system

on

all

CPUs

by

default

CONFIG_NO_HZ_FULL_ALL

即使沒(méi)有設(shè)置\引導(dǎo)參數(shù),也默認(rèn)對(duì)所有CPU(bootCPU除外)開啟完全無(wú)滴答特性.Old

CONFIG_NO_HZ

等價(jià)于CONFIG_NO_HZ_IDLE,臨時(shí)用來(lái)兼容老版本內(nèi)核選項(xiàng),未來(lái)會(huì)被刪除.High

Resolution

Timer

Support

Idle

dynticks

config

CONFIG_HIGH_RES_TIMERS

高精度定時(shí)器(hrtimer)是從2.6.16開始引入,用于取代傳統(tǒng)timerwheel(基于jiffies定時(shí)器)的時(shí)鐘子系統(tǒng).可以降低與內(nèi)核其他模塊的耦合性,還可以提供比1毫秒更高的精度(由于它可以讀取HPET/TSC等新型硬件時(shí)鐘源),可以更好的支持音視頻等對(duì)時(shí)間精度要求較高的應(yīng)用.建議選\提醒]這里說(shuō)的\定時(shí)器\是指\軟件定時(shí)器\而不是主板或CPU上集成的硬件時(shí)鐘發(fā)生器(ACPIPMTimer/HPETTimer/TSCTimer).CPU/TasktimeandstatsaccountingCPU/進(jìn)程的時(shí)間及狀態(tài)統(tǒng)計(jì)CputimeaccountingCPU時(shí)間統(tǒng)計(jì)方式Simple

tick

based

cputime

accounting

CONFIG_TICK_CPU_ACCOUNTING

簡(jiǎn)單的基于滴答的統(tǒng)計(jì),適用于大多數(shù)場(chǎng)合Deterministic

task

and

CPU

time

accounting

CONFIG_VIRT_CPU_ACCOUNTING_NATIVE

通過(guò)讀取CPU計(jì)數(shù)器進(jìn)行統(tǒng)計(jì),可以提供更確切的統(tǒng)計(jì),但是對(duì)性能有一些不利影響.Full

dynticks

CPU

time

accounting

CONFIG_VIRT_CPU_ACCOUNTING_GEN

利用上下文跟蹤子系統(tǒng),通過(guò)觀測(cè)每一個(gè)內(nèi)核與用戶空間的邊界進(jìn)行統(tǒng)計(jì).該選項(xiàng)對(duì)性能有顯著的不良影響,目前僅用于完全無(wú)滴答子系統(tǒng)(CONFIG_NO_HZ_FULL)的調(diào)試Fine

granularity

task

level

IRQ

time

accounting

CONFIG_IRQ_TIME_ACCOUNTING

通過(guò)讀取TSC時(shí)間戳進(jìn)行統(tǒng)計(jì),這是統(tǒng)計(jì)進(jìn)程IRQ時(shí)間的更細(xì)粒度的統(tǒng)計(jì)方式,但對(duì)性能有些不良影響(特別是在RDTSC指令速度較慢的CPU上).BSD

CONFIG_BSD_PROCESS_ACCT

用戶空間程序可以要求內(nèi)核將進(jìn)程的統(tǒng)計(jì)信息寫入一個(gè)指定的文件,主要包括進(jìn)程的創(chuàng)立時(shí)間/創(chuàng)立者/內(nèi)存占用等信息.BSD

Process

Accounting

version

3

file

format

Process

Accounting

CONFIG_BSD_PROCESS_ACCT_V3

使用新的v3版文件格式,可以包含每個(gè)進(jìn)程的PID和其父進(jìn)程的PID,但是不兼容老版本的文件格式.譬如GNUAccountingUtilities這樣的工具可以識(shí)別v3格式Export

task/process

statistics

through

netlink

CONFIG_TASKSTATS

通過(guò)netlink接口向用戶空間導(dǎo)出進(jìn)程的統(tǒng)計(jì)信息,與BSDProcessAccounting的不同之處在于這些統(tǒng)計(jì)信息在整個(gè)進(jìn)程生存期都是可用的.Enable

per-task

delay

accounting

CONFIG_TASK_DELAY_ACCT

在統(tǒng)計(jì)信息中包含進(jìn)程等候系統(tǒng)資源(cpu,IO同步,內(nèi)存交換等)所花費(fèi)的時(shí)間Enable

extended

accounting

over

taskstats

CONFIG_TASK_XACCT

在統(tǒng)計(jì)信息中包含進(jìn)程的更多擴(kuò)展信息.Enable

per-task

storage

I/O

accounting

CONFIG_TASK_IO_ACCOUNTING

在統(tǒng)計(jì)信息中包含進(jìn)程在存儲(chǔ)設(shè)備上的I/O字節(jié)數(shù).RCUSubsystem

RCU(Read-CopyUpdate)子系統(tǒng).在讀多寫少的狀況下,這是一個(gè)高性能的鎖機(jī)制,對(duì)于被RCU保護(hù)的共享數(shù)據(jù)結(jié)構(gòu),讀者不需要獲得任何鎖就可以訪問(wèn)它(速度十分快),但寫者在訪問(wèn)它時(shí)首先拷貝一個(gè)副本,然后對(duì)副本進(jìn)行修改,最終使用一個(gè)回調(diào)機(jī)制在適當(dāng)?shù)臅r(shí)機(jī)把指向原來(lái)數(shù)據(jù)的指針重新指向新的被修改的數(shù)據(jù),速度十分慢.RCU只適用于讀多寫少的狀況:如網(wǎng)絡(luò)路由表的查詢更新,設(shè)備狀態(tài)表的維護(hù),數(shù)據(jù)結(jié)構(gòu)的延遲釋放以及多徑I/O設(shè)備的維護(hù)等.RCUImplementationRCU的實(shí)現(xiàn)方式Tree-basedCONFIG_TREE_RCU

基于樹型分層結(jié)構(gòu)的實(shí)現(xiàn).最適用于多CPU的非實(shí)時(shí)系統(tǒng).Preemptible

tree-based

hierarchical

RCU

hierarchical

RCU

CONFIG_TREE_PREEMPT_RCU

搶占式基于樹型分層結(jié)構(gòu)的實(shí)現(xiàn).最適用于那些要求快速響應(yīng)的多CPU實(shí)時(shí)系統(tǒng).UP-only

CONFIG_TINY_RCU

最簡(jiǎn)單的實(shí)現(xiàn),能夠大幅降低RCU系統(tǒng)的內(nèi)存占用.最適用于單CPU的非實(shí)時(shí)系統(tǒng).Preemptible

UP-only

small-memory-footprint

RCU

small-memory-footprint

RCU

CONFIG_TINY_PREEMPT_RCU

搶占式簡(jiǎn)單實(shí)現(xiàn),能夠大幅降低RCU系統(tǒng)的內(nèi)存占用.最適用于那些要求快速響應(yīng)的單CPU實(shí)時(shí)系統(tǒng).

ConsideruserspaceasinRCUextendedquiescentstate

CONFIG_RCU_USER_QS

在內(nèi)核和用戶邊界設(shè)置鉤子函數(shù),將運(yùn)行在用戶態(tài)的CPU從全局RCU狀態(tài)機(jī)制中移除,這樣就不會(huì)在RCU系統(tǒng)中維護(hù)此CPU的時(shí)鐘滴答.除非你想要幫助開發(fā)CONFIG_NO_HZ_FULL模塊,否則不要開啟此選項(xiàng),而且它還會(huì)對(duì)性能有不利影響.Force

context

tracking

CONFIG_CONTEXT_TRACKING_FORCE

默認(rèn)在內(nèi)核和用戶邊界進(jìn)行探測(cè)(上下文跟蹤),以便測(cè)試依靠于此特性的各種功能(譬如用戶空間的RCUextendedquiescentstate),這個(gè)特性目前僅用于調(diào)試目的,未來(lái)可能會(huì)用于為CONFIG_NO_HZ_FULL模塊提供支持Tree-based

hierarchical

RCU

fanout

value

CONFIG_RCU_FANOUT

這個(gè)選項(xiàng)控制著樹形RCU層次結(jié)構(gòu)的端點(diǎn)數(shù)(fanout),以允許RCU子系統(tǒng)在擁有海量CPU的系統(tǒng)上高效工作.這個(gè)值必需至少等于CONFIG_NR_CPUS的1/4次方(4次根號(hào)).生產(chǎn)系統(tǒng)上應(yīng)當(dāng)使用默認(rèn)值(64).僅在你想調(diào)試RCU子系統(tǒng)時(shí)才需要減小此值.Tree-based

hierarchical

RCU

leaf-level

fanout

value

CONFIG_RCU_FANOUT_LEAF

這個(gè)選項(xiàng)控制著樹形RCU層次結(jié)構(gòu)的葉子層的端點(diǎn)數(shù)(leaf-levelfanout).對(duì)于期望擁有更高能耗比(更節(jié)能)的系統(tǒng),請(qǐng)保持其默認(rèn)值(16).對(duì)于擁有成千上萬(wàn)個(gè)CPU的系統(tǒng)來(lái)說(shuō),應(yīng)當(dāng)考慮將其設(shè)為最大值(CONFIG_RCU_FANOUT).Disable

tree-based

hierarchical

RCU

auto-balancing

CONFIG_RCU_FANOUT_EXACT

強(qiáng)制依照CONFIG_RCU_FANOUT_LEAF的值,而不是使用自動(dòng)平衡樹結(jié)構(gòu)來(lái)實(shí)現(xiàn)RCU子系統(tǒng).目前僅用于調(diào)試目的.未來(lái)可能會(huì)用于加強(qiáng)NUMA系統(tǒng)的性能.Accelerate

last

non-dyntick-idle

CPU's

grace

periods

CONFIG_RCU_FAST_NO_HZ

即使CPU還在繁忙,也允許進(jìn)入dynticks-idle狀態(tài),并且阻止RCU每4個(gè)滴答就喚醒一次該CPU,這樣能夠更有效的使用電力,同時(shí)也拉長(zhǎng)了RCUgraceperiod的時(shí)間,造成性能降低.假使能耗比對(duì)你而言十分重要(你想節(jié)省每一分電力),并且你不在乎系統(tǒng)性能的降低(CPU喚醒時(shí)間增加),可以開啟此選項(xiàng).臺(tái)式機(jī)和服務(wù)器建議關(guān)閉此選項(xiàng).Enable

CONFIG_RCU_BOOST

允許提升RCU子系統(tǒng)的實(shí)時(shí)優(yōu)先級(jí)(包括讀操作與寫操作),以避免RCU操作被阻塞太長(zhǎng)時(shí)間.假使系統(tǒng)的CPU負(fù)載經(jīng)常很重,或者你需要快速的實(shí)時(shí)響應(yīng)系統(tǒng),那么就選\否則應(yīng)選中\(zhòng)Real-time

priority

to

boost

RCU

readers

to

RCU

priority

boosting

CONFIG_RCU_BOOST_PRIO

允許提升被長(zhǎng)時(shí)間搶占(阻塞)的RCU讀操作的實(shí)時(shí)優(yōu)先級(jí)到什么程度.取值范圍是[1,99].默認(rèn)值\適用于實(shí)時(shí)應(yīng)用程序中不包含CPU密集型(CPU-bound)線程的常規(guī)場(chǎng)合(例如大多數(shù)桌面系統(tǒng)).但是假使你的實(shí)時(shí)應(yīng)用程序擁有一個(gè)或多個(gè)CPU密集型線程,那么可能需要增加這個(gè)值,具體可以參考內(nèi)核幫助的說(shuō)明.僅在你確實(shí)理解了的狀況下再改變默認(rèn)值.

MillisecondstodelayboostingafterRCUgrace-periodstartCONFIG_RCU_BOOST_DELAY

在提升RCU讀操作的優(yōu)先級(jí)之前,允許有多長(zhǎng)時(shí)間潛伏期(阻塞),取值范圍是[0,3000],單位是毫秒,默認(rèn)值是\不確定的請(qǐng)使用默認(rèn)值.Offload

RCU

callback

processing

from

boot-selected

CPUs

CONFIG_RCU_NOCB_CPU

假使你想幫助調(diào)試內(nèi)核可以開啟,否則請(qǐng)關(guān)閉.Build-forcedno-CBsCPUs

在開啟CONFIG_RCU_NOCB_CPU選項(xiàng)的狀況下,指定哪些CPU是No-CBCPU,相當(dāng)于預(yù)先設(shè)置\內(nèi)核引導(dǎo)參數(shù).Kernel

CONFIG_IKCONFIG

.config

support

把內(nèi)核的配置信息編譯進(jìn)內(nèi)核中,以后可以通過(guò)scripts/extract-ikconfig腳本從內(nèi)核鏡像中提取這些信息Enable

access

to

.config

through

/proc/config.gz

CONFIG_IKCONFIG_PROC

允許通過(guò)/proc/config.gz文件訪問(wèn)內(nèi)核的配置信息Kernel

CONFIG_LOG_BUF_SHIFT設(shè)

內(nèi)

區(qū)

:

12(

log

buffer

size

值)=4KB,...,16=64KB,17=128KB,18=256KB,...,21(最大值)=2048KBAutomatically

enable

NUMA

aware

memory/task

placement

CONFIG_NUMA_BALANCING_DEFAULT_ENABLED

在NUMA(Non-UniformMemoryAccessArchitecture)系統(tǒng)上自動(dòng)啟用進(jìn)程/內(nèi)存均衡,也就是自動(dòng)開啟CONFIG_NUMA_BALANCING特性.Memory

placement

aware

NUMA

scheduler

CONFIG_NUMA_BALANCING

允許自動(dòng)根據(jù)NUMA系統(tǒng)的節(jié)點(diǎn)分布狀況進(jìn)行進(jìn)程/內(nèi)存均衡(方法很原始,就是簡(jiǎn)單的內(nèi)存移動(dòng)).這個(gè)選項(xiàng)對(duì)UMA系統(tǒng)無(wú)效.[提醒]UMA系統(tǒng)的例子:(1)只有一顆物理CPU(即使是多核)的電腦,(2)不支持\虛擬NUMA\或\虛擬NUMA\被禁用的虛擬機(jī)(即使所在的物理機(jī)是NUMA系統(tǒng))ControlCONFIG_CGROUPS

Cgroup(ControlGroup)是一種進(jìn)程管理機(jī)制,可以針對(duì)一組進(jìn)程進(jìn)行系統(tǒng)資源的分派和管理,可用于Cpusets,CFS(完全公允調(diào)度器),內(nèi)存管理等子系統(tǒng).此外,systemd

也依靠于它.更多細(xì)節(jié)可以參考內(nèi)核的

Group

support

\Documentation/cgroups/cgroups.txt\文件Example

CONFIG_CGROUP_DEBUG

導(dǎo)出cgroups框架的調(diào)試信息,僅用于調(diào)試目的.

debug

cgroup

subsystem

Freezer

CONFIG_CGROUP_FREEZER

cgroupsubsystem

允許凍結(jié)/解凍cgroup內(nèi)所有進(jìn)程Device

controller

for

cgroups

CONFIG_CGROUP_DEVICE

允許為cgroup建立設(shè)備白名單,這樣cgroup內(nèi)的進(jìn)程將僅允許對(duì)白名單中的設(shè)備進(jìn)行mknod/open操作Cpuset

CONFIG_CPUSETS

CPUSET支持:允許將CPU和內(nèi)存進(jìn)行分組,并指定某些進(jìn)程只能運(yùn)行于特定的分組.這里有一篇CPUSET的用法Include

legacy

/proc//cpuset

filesupport

CONFIG_PROC_PID_CPUSET

提供過(guò)時(shí)的/proc//cpuset文件接口Simple

CPU

accounting

cgroup

subsystem

CONFIG_CGROUP_CPUACCT

提供一個(gè)簡(jiǎn)單的資源控制器(ResourceController,用于實(shí)現(xiàn)一組任務(wù)間的資源共享),以監(jiān)控cgroup內(nèi)所有進(jìn)程的總CPU使用量.Resource

CONFIG_RESOURCE_COUNTERS

為cgroup提供獨(dú)立于controller資源計(jì)數(shù)器Memory

Resource

Controller

for

Control

Groupscounters

CONFIG_MEMCG

為cgroup添加內(nèi)存資源控制器,包含匿名內(nèi)存和頁(yè)面緩存(Documentation/cgroups/memory.txt).開啟此選項(xiàng)后,將會(huì)增加關(guān)聯(lián)到每個(gè)內(nèi)存頁(yè)fixedmemory大小,具體在64位系統(tǒng)上是40bytes/PAGE_SIZE.僅在你確實(shí)明白什么是memoryresourcecontroller并且確實(shí)需要的狀況下才開啟此選項(xiàng).此功能可以通過(guò)命令行選項(xiàng)\進(jìn)行關(guān)閉.

MemoryResourceControllerSwapExtension

CONFIG_MEMCG_SWAP

給MemoryResourceController添加對(duì)swap的管理功能.這樣就可以針對(duì)每個(gè)cgroup限定其使用的mem+swap總量.假使關(guān)閉此選項(xiàng),memoryresourcecontroller將僅能限制mem的使用量,而無(wú)法對(duì)swap進(jìn)行控制(進(jìn)程有可能耗盡swap).開啟此功能會(huì)對(duì)性能有不利影響,并且為了追蹤swap的使用也會(huì)消耗更多的內(nèi)存(假使swap的頁(yè)面大小是4KB,那么每1GB的swap需要額外消耗512KB內(nèi)存),所以在內(nèi)存較小的系統(tǒng)上不建議開啟.

MemoryResourceControllerSwapExtensionenabledbydefaultCONFIG_MEMCG_SWAP_ENABLED

假使開啟此選項(xiàng),那么將默認(rèn)開啟CONFIG_MEMCG_SWAP特性,否則將默認(rèn)關(guān)閉.即使默認(rèn)開啟也可以通過(guò)內(nèi)核引導(dǎo)參數(shù)\阻止此特性.Memory

Resource

Controller

Kernel

Memory

accounting

CONFIG_MEMCG_KMEM

為MemoryResourceController添加對(duì)內(nèi)核對(duì)象所占用內(nèi)存的管理功能.和標(biāo)準(zhǔn)的MemoryResourceController對(duì)內(nèi)存的控制不一樣之處在于:這些內(nèi)核對(duì)象所占用的內(nèi)存是基于每個(gè)內(nèi)存頁(yè)的,并且可以被swap到硬盤.使用這個(gè)功能可以確保cgroup中的進(jìn)程不會(huì)單獨(dú)耗盡所有內(nèi)核資源.HugeTLB

Resource

Controller

for

Control

Groups

CONFIG_CGROUP_HUGETLB

為cgroup添加對(duì)HugeTLB頁(yè)的資源控制功能.開啟此選項(xiàng)之后,你就可以針對(duì)每個(gè)cgroup限定其對(duì)HugeTLB的使用.

Enableperf_eventper-cpuper-containergroup(cgroup)monitoringCONFIG_CGROUP_PERF

將per-cpu模式進(jìn)行擴(kuò)展,使其可以監(jiān)控屬于特定cgroup并運(yùn)行于特定CPU上的線程Group

CONFIG_CGROUP_SCHED

CPU

scheduler

讓CPU調(diào)度程序可以在不同的cgroup之間分派CPU的帶寬.systemd資源控制單元(resourcecontrolunit)的CPUShares功能依靠于它.Group

scheduling

for

SCHED_OTHER

CONFIG_FAIR_GROUP_SCHED

公允CPU調(diào)度策略,也就是在多個(gè)cgroup之間平均分派CPU帶寬.\雞血補(bǔ)丁\自動(dòng)分組調(diào)度功能)依靠于它.systemd資源控制單元(resourcecontrolunit)的CPUShares功能也依靠于它.CPU

bandwidth

provisioning

for

FAIR_GROUP_SCHED

CONFIG_CFS_BANDWIDTH

允許用戶為運(yùn)行在CONFIG_FAIR_GROUP_SCHED中的進(jìn)程定義CPU帶寬限制.對(duì)于沒(méi)有定義CPU帶寬限制的cgroup而言,可以無(wú)限制的使用CPU帶寬.詳情參見Documentation/scheduler/sched-bwc.txt文件.Group

scheduling

for

SCHED_RR/FIFO

CONFIG_RT_GROUP_SCHED

允許用戶為cgroup分派實(shí)時(shí)CPU帶寬,還可以對(duì)非特權(quán)用戶的實(shí)時(shí)進(jìn)程組進(jìn)行調(diào)度.詳情參見Documentation/scheduler/sched-rt-group.txt文檔.Block

CONFIG_BLK_CGROUP

通用的塊IO控制器接口,可以用于實(shí)現(xiàn)各種不同的控制策略.目前,IOSCHED_CFQ用它來(lái)在不同的cgroup之間分派磁盤IO帶寬(需要額外開啟CONFIG_CFQ_GROUP_IOSCHED),blockiothrottle也會(huì)用它來(lái)針對(duì)特定塊設(shè)備限制IO速率上限(需要額外開啟CONFIG_BLK_DEV_THROTTLING).更多信息可以參考\Documentation/cgroups/blkio-controller.txt\文件.Enable

Block

IO

controller

debugging

IO

controller

CONFIG_DEBUG_BLK_CGROUP

僅用于調(diào)試BlockIOcontroller目的.Checkpoint/restoreCONFIG_CHECKPOINT_RESTORE

support

在內(nèi)核中添加\檢查點(diǎn)/恢復(fù)\支持.也就是添加一些輔助的代碼用于設(shè)置進(jìn)程的text,data,heap段,并且在/proc文件系統(tǒng)中添加一些額外的條目.主要用于調(diào)試目的.不確定的選\NamespacesCONFIG_NAMESPACES

命名空間支持.主要用于支持基于容器的輕量級(jí)虛擬化技術(shù)(譬如LXC和Linux-VServer).UTS

CONFIG_UTS_NS

uname()系統(tǒng)調(diào)用的命名空間支持IPC

CONFIG_IPC_NS

進(jìn)程間通信對(duì)象ID的命名空間支持User

CONFIG_USER_NS

允許容器使用user命名空間.假使開啟此項(xiàng),建議同時(shí)開啟CONFIG_MEMCG和CONFIG_MEMCG_KMEM選項(xiàng),以允許用戶空間使用\限制非特權(quán)用戶的內(nèi)存使用量.不確定的選\假使你計(jì)劃構(gòu)建一個(gè)VPS服務(wù)器就必需選\PID

CONFIG_PID_NS進(jìn)程PID命名空間支持NetworkCONFIG_NET_NS

網(wǎng)絡(luò)協(xié)議棧的命名空間支持.systemd服務(wù)單元(serviceunit)中的\依靠于它.

Requireconversionsbetweenuid/gidsandtheirinternalrepresentationCONFIG_UIDGID_STRICT_TYPE_CHECKS

namespaceNamespacesnamespacenamespacenamespacesupport

強(qiáng)制將uid/gid轉(zhuǎn)換為內(nèi)部表示形式,以讓那些未對(duì)uid/gid進(jìn)行轉(zhuǎn)換的內(nèi)核子系統(tǒng)代碼也能正常編譯.不確定的選\Automatic

process

group

scheduling

CONFIG_SCHED_AUTOGROUP

每個(gè)TTY動(dòng)態(tài)地創(chuàng)立任務(wù)分組(cgroup),這樣就可以降低高負(fù)載狀況下的桌面延遲.也就是傳聞中的桌面\雞血補(bǔ)丁\桌面用戶建議開啟.但服務(wù)器建議關(guān)閉.EnabledeprecatedsysfsfeaturestosupportolduserspacetoolsCONFIG_SYSFS_DEPRECATED

為了兼容舊版本的應(yīng)用程序而保存過(guò)時(shí)的sysfs特性.僅當(dāng)在使用2023年以前的發(fā)行版時(shí)才需要開啟,2023年之后的發(fā)行版中必需關(guān)閉.此外,使用udev或systemd的系統(tǒng)也必需關(guān)閉.Enable

deprecated

sysfs

features

by

default

CONFIG_SYSFS_DEPRECATED_V2默認(rèn)開啟上述特性Kernel->userCONFIG_RELAY

在某些文件系統(tǒng)(譬如debugfs)中提供中繼(relay)支持(從內(nèi)核空間向用戶空間傳遞大批量數(shù)據(jù)).主要用于調(diào)試內(nèi)核.

InitialRAMfilesystemandRAMdisk(initramfs/initrd)supportCONFIG_BLK_DEV_INITRD

初始內(nèi)存文件系統(tǒng)(initramfs,2.6以上內(nèi)核的新機(jī)制,使用cpio格式,占據(jù)的內(nèi)存隨數(shù)據(jù)的增減自動(dòng)增減)與初始內(nèi)存盤(initrd,2.4以前內(nèi)核遺留的老機(jī)制,使用loop設(shè)備,占據(jù)一塊固定的內(nèi)存,需要額外開啟CONFIG_BLK_DEV_RAM選項(xiàng)才生效)支持,一般通過(guò)lilo/grub的initrd指令加載.更多細(xì)節(jié)可以參考\Documentation/initrd.txt\文件,關(guān)于initrd到initramfs的進(jìn)化(墻內(nèi)鏡像),可以參考IBM上的兩篇文章:Linux2.6內(nèi)核的Initrd機(jī)制解析和Linux初始RAM磁盤(initrd)概述.Initramfs

CONFIG_INITRAMFS_SOURCE

source

file(s)

space

relay

support

(formerly

relayfs)

假使你想將initramfs鏡像直接嵌入內(nèi)核(譬如嵌入式環(huán)境或者想使用EFIstubkernel),而不是通過(guò)lilo/grub這樣的引導(dǎo)管理器加載,可以使用此選項(xiàng),否則請(qǐng)保持空白.這個(gè)選項(xiàng)指明用來(lái)制作initramfs鏡像的原料,可以是一個(gè).cpio

文件,或一個(gè)

Initramfs

虛根目錄(其下包含

\等子目錄),或一個(gè)描述文件.細(xì)節(jié)可以參考\Documentation/early-userspace/README\文檔.[注意]內(nèi)核幫助文檔說(shuō)可以指定多個(gè)目錄或文件是錯(cuò)誤的,實(shí)際只能接受單一的目錄或文件User

ID

to

map

to

0

(user

root)

INITRAMFS_ROOT_UID

此選項(xiàng)僅在CONFIG_INITRAMFS_SOURCE中包含目錄時(shí)才有效,將此值設(shè)為非零(例如\那么所有UID=37的文件在打包到initramfs鏡像內(nèi)時(shí),其UID都將被設(shè)為\Group

ID

to

map

to

0

(group

root)

INITRAMFS_ROOT_GID

此選項(xiàng)僅在CONFIG_INITRAMFS_SOURCE中包含目錄時(shí)才有效,將此值設(shè)為非零(例如\那么所有GID=37的文件在打包到initramfs鏡像內(nèi)時(shí),其GID都將被設(shè)為\Support

initial

ramdisks

compressed

using

gzip

CONFIG_RD_GZIP

支持經(jīng)過(guò)gzip壓縮的ramdisk或cpio鏡像Support

initial

ramdisks

compressed

using

bzip2

CONFIG_RD_BZIP2

支持經(jīng)過(guò)bzip2壓縮的ramdisk或cpio鏡像Support

initial

ramdisks

compressed

using

LZMA

CONFIG_RD_LZMA

支持經(jīng)過(guò)LZMA壓縮的ramdisk或cpio鏡像Support

initial

ramdisks

compressed

using

XZ

CONFIG_RD_XZ

支持經(jīng)過(guò)XZ壓縮的ramdisk或cpio鏡像

SupportinitialramdiskscompressedusingLZO

CONFIG_RD_LZO

支持經(jīng)過(guò)LZO壓縮的ramdisk或cpio鏡像Built-ininitramfscompressionmode

選擇initramfs鏡像的壓縮格式.\是兼容性最好的格式,但是壓縮率卻最低.\是目前漸漸流行的格式,壓縮率高,解壓速度也不慢.Optimize

CONFIG_CC_OPTIMIZE_FOR_SIZE

編譯時(shí)優(yōu)化內(nèi)核尺寸(使用GCC的\而不是\參數(shù)編譯),這會(huì)得到更小的內(nèi)核,但是運(yùn)行速度可能會(huì)更慢.主要用于嵌入式環(huán)境.ConfigureCONFIG_EXPERT

配置標(biāo)準(zhǔn)的內(nèi)核特性(僅供專家使用).這個(gè)選項(xiàng)允許你改變內(nèi)核的\標(biāo)準(zhǔn)\特性(譬如用于需要\非標(biāo)準(zhǔn)\內(nèi)核的特定環(huán)境中),僅在你確實(shí)明白自己在干什么的時(shí)候才開啟.EnableCONFIG_UID16

允許對(duì)UID系統(tǒng)調(diào)用進(jìn)行過(guò)時(shí)的16-bit包裝,建議關(guān)閉Sysctl

CONFIG_SYSCTL_SYSCALL

二進(jìn)制sysctl接口支持.由于現(xiàn)在流行直接通過(guò)/proc/sys以ASCII明碼方式修改內(nèi)核參數(shù)(需要開啟CONFIG_PROC_SYSCTL選項(xiàng)),所以已經(jīng)不需要再通過(guò)二進(jìn)制接口去控制內(nèi)核參數(shù),建議關(guān)閉它以減小內(nèi)核尺寸.Load

all

symbols

for

debugging/ksymoops

syscall

support

16-bit

UID

system

calls

standard

kernel

features

(expert

users)

for

size

CONFIG_KALLSYMS

裝載所有的調(diào)試符號(hào)表信息,會(huì)增大內(nèi)核體積,僅供調(diào)試時(shí)選擇Include

all

symbols

in

kallsyms

CONFIG_KALLSYMS_ALL

在/proc/kallsyms中包含內(nèi)核知道的所有符號(hào),內(nèi)核將會(huì)增大300K,僅在你確實(shí)需要的時(shí)候再開啟EnableCONFIG_PRINTK

允許內(nèi)核向終端打印字符信息.假使關(guān)閉,內(nèi)核在初始化過(guò)程中將不會(huì)輸出字符信息,這會(huì)導(dǎo)致很難診斷系統(tǒng)故障.僅在你確實(shí)不想看到任何內(nèi)核信息時(shí)選\否則請(qǐng)選\BUG()CONFIG_BUG

顯示故障和失敗條件(BUG和WARN),禁用它將可能導(dǎo)致隱含的錯(cuò)誤被忽略.建議僅在嵌入式設(shè)備或者無(wú)法顯示故障信息的系統(tǒng)上關(guān)閉Enable

CONFIG_ELF_CORE

內(nèi)存轉(zhuǎn)儲(chǔ)支持,可以幫助調(diào)試ELF格式的程序,用于調(diào)試和開發(fā)用戶態(tài)程序Enable

CONFIG_PCSPKR_PLATFORM

主板上的蜂鳴器支持.主板上的蜂鳴器只能發(fā)出或長(zhǎng)或短的\滴\或\嘟嘟\聲,一般用于系統(tǒng)報(bào)警.不要和能夠播放音樂(lè)的揚(yáng)聲器混淆.假使你的主板上沒(méi)有就關(guān)閉,有的話(開機(jī)自檢完成后一般能聽到\滴\的一聲)還是建議開啟.Enable

full-sized

data

structures

for

core

PC-Speaker

support

ELF

core

dumpssupport

support

for

printk

CONFIG_BASE_FULL

在內(nèi)核中使用全尺寸的數(shù)據(jù)結(jié)構(gòu).禁用它將使得某些內(nèi)核的數(shù)據(jù)結(jié)構(gòu)減小以儉約內(nèi)存,但是將會(huì)降低性能EnableCONFIG_FUTEX

快速用戶空間互斥(fastuserspacemutexes)可以使線程串行化以避免競(jìng)態(tài)條件,也提高了響應(yīng)速度.禁用它將導(dǎo)致內(nèi)核不能正確的運(yùn)行基于glibc的程序EnableCONFIG_EPOLL

eventpoll

support

futex

support

Epoll系列系統(tǒng)調(diào)用(epoll_*)支持,這是當(dāng)前在Linux下開發(fā)大規(guī)模并發(fā)網(wǎng)絡(luò)程序(譬如Nginx)的熱門人選,設(shè)計(jì)目的是取代既有POSIXselect(2)與poll(2)系統(tǒng)接口,systemd依靠于它.建議開啟.Enable

CONFIG_SIGNALFD

signalfd()系統(tǒng)調(diào)用支持,建議開啟.傳統(tǒng)的處理信號(hào)的方式是注冊(cè)信號(hào)處理函數(shù),由于信號(hào)是異步發(fā)生的,要解決數(shù)據(jù)的并發(fā)訪問(wèn)和可重入問(wèn)題.signalfd可以將信號(hào)抽象為一個(gè)文件描述符,當(dāng)有信號(hào)發(fā)生時(shí)可以對(duì)其read,這樣可以將信號(hào)的監(jiān)聽放到select/poll/epoll監(jiān)聽隊(duì)列中.systemd依靠于它.Enable

CONFIG_TIMERFD

timerfd()系統(tǒng)調(diào)用支持,建議開啟.timerfd可以實(shí)現(xiàn)定時(shí)器功能,將定時(shí)器抽象為文件描述符,當(dāng)定時(shí)器到期時(shí)可以對(duì)其read,這樣也可以放到select/poll/epoll監(jiān)聽隊(duì)列中.更多信息可以參考linux新的APIsignalfd、timerfd、eventfd使用說(shuō)明.systemd依靠于它.Enable

CONFIG_EVENTFD

eventfd()系統(tǒng)調(diào)用支持,建議開啟.eventfd實(shí)現(xiàn)了線程之間事件通知的方式,eventfd的緩沖區(qū)大小是sizeof(uint64_t),向其write可以遞增這個(gè)計(jì)數(shù)器,read操作可以讀取,并進(jìn)行清零.eventfd也可以放到select/poll/epoll監(jiān)聽隊(duì)列中.當(dāng)計(jì)數(shù)器不是0時(shí),有可讀事件發(fā)生,可以進(jìn)行讀取.Use

CONFIG_SHMEM

完全使用shmem來(lái)代替ramfs.shmem是基于共享內(nèi)存的文件系統(tǒng)(可以使用swap),在啟用CONFIG_TMPFS后可以掛載為tmpfs供用戶空間使用,它比簡(jiǎn)單的ramfs先進(jìn)大量.僅在微型嵌入式環(huán)境中且沒(méi)有swap的狀況下才可能會(huì)需要使用原始的ramfs.EnableCONFIG_AIO

AIO

support

full

shmem

filesystem

eventfd()

system

call

timerfd()

system

call

signalfd()

system

call

開啟POSIX異步IO支持.它往往被高性能的多線程程序使用,建議開啟Enable

CONFIG_PCI_QUIRKS

開啟針對(duì)多種PCI芯片組的錯(cuò)誤規(guī)避功能,僅在確定你的PCI芯片組確實(shí)沒(méi)有沒(méi)有任何bug時(shí)才關(guān)閉此功能.至于畢竟哪些芯片組有bug,你可以直接開啟\drivers/pci/quirks.c\文件查看.不確定的選\EmbeddedCONFIG_EMBEDDED

假使你是為嵌入式系統(tǒng)編譯內(nèi)核,可以開啟此選項(xiàng),這樣一些高級(jí)選項(xiàng)就會(huì)顯示出來(lái).單獨(dú)選中此項(xiàng)本身對(duì)內(nèi)核并無(wú)任何改變.Kernel

Performance

Events

And

Counterssystem

PCI

quirk

workarounds

CONFIG_PERF_EVENTS

性能相關(guān)的事件和計(jì)數(shù)器支持(既有硬件的支持也有軟件的支持).大多數(shù)現(xiàn)代CPU都會(huì)通過(guò)性能計(jì)數(shù)寄放器對(duì)特定類型的硬件事件(指令執(zhí)行,緩存未命中,分支預(yù)計(jì)失敗)進(jìn)行計(jì)數(shù),同時(shí)又絲毫不會(huì)減慢內(nèi)核和應(yīng)用程序的運(yùn)行速度.這些寄放器還會(huì)在某些事件計(jì)數(shù)到達(dá)特定的閾值時(shí)觸發(fā)中斷,從而可以對(duì)代碼進(jìn)行性能分析.LinuxPerformanceEvent子系統(tǒng)對(duì)上述特性進(jìn)行了抽象,提供了針對(duì)每個(gè)進(jìn)程和每個(gè)CPU的計(jì)數(shù)器,并可以被tools/perf/目錄中的\工具使用.Debug:

use

vmalloc

to

back

perf

mmap()

buffers

CONFIG_DEBUG_PERF_USE_VMALLOC主要用于調(diào)試vmalloc代碼.Enable

VM

event

counters

for

/proc/vmstat

CONFIG_VM_EVENT_COUNTERS

\/proc/vmstat\中包含了從內(nèi)核導(dǎo)出的虛擬內(nèi)存的各種統(tǒng)計(jì)信息.開啟此項(xiàng)后可以顯示較詳細(xì)的信息(包含各種事件計(jì)數(shù)器),關(guān)閉此項(xiàng)則僅僅顯示很簡(jiǎn)單的信息.主要用于調(diào)試和統(tǒng)計(jì).Enable

CONFIG_SLUB_DEBUG

SLUB

debugging

support

SLUB調(diào)試支持,禁用后可顯著降低內(nèi)核大小,同時(shí)/sys/kernel/slab也將不復(fù)存在.Disable

CONFIG_COMPAT_BRK

禁用堆隨機(jī)化(heaprandomization)功能.堆隨機(jī)化可以讓針對(duì)堆溢出的攻擊變得困難,但是不兼容那些古董級(jí)的二進(jìn)制程序(2000年以前).假使你不需要使用這些古董程序,那么選\ChooseSLABallocator選擇內(nèi)存分派管理器SLABCONFIG_SLAB

久經(jīng)考驗(yàn)的slab內(nèi)存分派器,在大多數(shù)狀況下都具有良好的適應(yīng)性.SLUBCONFIG_SLUB

SLUB與SLAB兼容,但通過(guò)取消大量的隊(duì)列和相關(guān)開銷,簡(jiǎn)化了slab的結(jié)構(gòu).特別是在多核時(shí)擁有比slab更好的性能和更好的系統(tǒng)可伸縮性.SLOBCONFIG_SLOB

SLOB針對(duì)小型系統(tǒng)設(shè)計(jì),做了十分激進(jìn)的簡(jiǎn)化,以適用于內(nèi)存十分有限(小于64M)的嵌入式環(huán)境.SLUB

per

cpu

partial

cache

(Simple

Allocator)

(Unqueued

Allocator)

heap

randomization

CONFIG_SLUB_CPU_PARTIAL

讓SLUB內(nèi)存分派器使用基于每個(gè)CPU的局部緩存,這樣可以加速分派和釋放屬于此CPU范圍內(nèi)的對(duì)象,但這樣做的代價(jià)是增加對(duì)象釋放延遲的不確定性.由于當(dāng)這些局部緩存由于溢出而要被清除時(shí),需要使用鎖,從而導(dǎo)致延遲尖峰.對(duì)于需要快速響應(yīng)的實(shí)時(shí)系統(tǒng),應(yīng)選中\(zhòng)服務(wù)器則可以選\Provide

system-wide

ring

of

trusted

keys

CONFIG_SYSTEM_TRUSTED_KEYRING

Karma

CONFIG_KARMA_PARTITION

Partitionsupport

RioKarmaMP3player使用的分區(qū)格式EFI

GUID

Partition

support

CONFIG_EFI_PARTITION

代表未來(lái)趨勢(shì),眼下正大紅大紫的EFIGPT(GUIDPartitionTable)分區(qū)格式.建議開啟.假使你在UEFI平臺(tái)上安裝則必需開啟.SYSV68

partition

table

support

CONFIG_SYSV68_PARTITION

MotorolaDelta機(jī)器上使用的分區(qū)格式IOSchedulersIO調(diào)度器(另一篇文章)Deadline

CONFIG_IOSCHED_DEADLINE

deadline調(diào)度器.簡(jiǎn)單小巧(只有400+行代碼),提供了最小的讀取延遲.假使你希望盡快讀取磁盤,而不介意寫入延遲,那它是最正確選擇.尋常對(duì)于數(shù)據(jù)庫(kù)工作負(fù)載有最正確的表現(xiàn).CFQ

CONFIG_IOSCHED_CFQ

cfq(CompleteFairQueuing)調(diào)度器.努力在各內(nèi)核線程間公允分派IO資源,適用于系統(tǒng)中存在著大量?jī)?nèi)核線程同時(shí)進(jìn)行IO請(qǐng)求的狀況.但對(duì)于只有少數(shù)內(nèi)核線程進(jìn)行密集IO請(qǐng)求的狀況,則會(huì)出現(xiàn)明顯的性能下降.CFQ

Group

Scheduling

support

I/O

scheduler

I/O

scheduler

CONFIG_CFQ_GROUP_IOSCHED

允許將CFQ和cgroup組合使用,也就是將每個(gè)cgroup看成一個(gè)整體,在各cgroup

進(jìn)

IO

.

\Documentation/cgroups/blkio-controller.txt\文件.還可以參考一下《Linux內(nèi)核精華》中的\使用BlockI/O控制器\一章.

BFQ

CONFIG_IOSCHED_BFQ

I/Oscheduler

bfq(BudgetFairQueueing)調(diào)度器.這是一個(gè)基于CFQ調(diào)度器的改進(jìn)版本,更適合于對(duì)交互性要求比較高的場(chǎng)合,譬如桌面系統(tǒng)和實(shí)時(shí)系統(tǒng).假使靜態(tài)編譯進(jìn)內(nèi)核,還支持和cgroup協(xié)同,實(shí)現(xiàn)分層調(diào)度(hierarchicalscheduling).BFQ

hierarchical

scheduling

support

CONFIG_CGROUP_BFQIO

通過(guò)cgroup文件系統(tǒng)接口,允許將BFQ分層使用(類似CONFIG_CFQ_GROUP_IOSCHED),這個(gè)子系統(tǒng)的名字是\DefaultI/Oscheduler

默認(rèn)IO調(diào)度器.假使上述調(diào)度器都是模塊,那么將使用最簡(jiǎn)單的內(nèi)置NOOP調(diào)度器.NOOP(NoOperation)調(diào)度器只是一個(gè)簡(jiǎn)單的FIFO隊(duì)列,不對(duì)IO請(qǐng)求做任何重新排序處理(但還是會(huì)做一定程度的歸并),適合于SSD/U盤/內(nèi)存/SAN(StorageAreaNetworks)/虛擬機(jī)中的硬盤/iSCSI/硬RAID等無(wú)需尋道的存儲(chǔ)設(shè)備,重點(diǎn)是可以儉約CPU資源,但不適用于普通硬盤這樣的需要依靠磁頭來(lái)定位的設(shè)備.另外,有人說(shuō)擁有TCQ/NCQ技術(shù)(能夠自動(dòng)重新排序)的硬盤也適合用NOOP調(diào)度器,這個(gè)說(shuō)法其實(shí)并不那么合理,但筆者在此不敢斷言,希望讀者在嚴(yán)謹(jǐn)?shù)臏y(cè)試之后再做定奪.

Processortypeandfeatures中央處理器(CPU)類型及特性

DMA

CONFIG_ZONE_DMA

允許為尋址寬度不足32位的設(shè)備(也就是ISA和LPC總線設(shè)備)在物理內(nèi)存的前16MB范圍內(nèi)(也就是傳統(tǒng)上x86_32架構(gòu)的ZONE_DMA區(qū)域)分派內(nèi)存.不確定的選\內(nèi)核中若有其它驅(qū)動(dòng)(主要是某些老舊的聲卡)需要它會(huì)自動(dòng)選中此項(xiàng).[提醒]LPC總線尋常和主板上的南橋物理相連,尋常連接了一系列的傳統(tǒng)設(shè)備:BIOS,PS/2鍵盤,PS/2鼠標(biāo),軟盤,并口設(shè)備,串口設(shè)備,某些集成聲卡,TPM(可信平臺(tái)模塊),等等.[題外話]x86_64已經(jīng)沒(méi)有ZONE_HIGHMEM了

memory

allocation

support

SymmetricCONFIG_SMP

multi-processingsupport

SMP(對(duì)稱多處理器)支持,假使你有多個(gè)CPU或者使用的是多核CPU就選上.Support

CONFIG_X86_X2APIC

x2apic支持.具有這個(gè)特性的CPU可以使用32位的APICID(可以支持海量的CPU),并且可以使用MSR而不是mmio去訪問(wèn)localAPIC(更加高效).可以通過(guò)\命令檢查你的CPU是否支持這個(gè)特性.注意:有時(shí)候還需要在BIOS中也開啟此特性才真正生效.[提醒]在虛擬機(jī)中,還需要VMM的支持(例如qemu-kvm).Enable

CONFIG_X86_MPPARSE

假使是不支持acpi特性的古董級(jí)SMP系統(tǒng)就選上.但現(xiàn)今的64位系統(tǒng)早都已經(jīng)支持acpi了,所以可以安全的關(guān)閉.Support

for

extended

(non-PC)

x86

platforms

MPS

tablex2apic

CONFIG_X86_EXTENDED_PLATFORM

支持非標(biāo)準(zhǔn)的PC平臺(tái):NumascaleNumaChip,ScaleMPvSMP,SGIUltraviolet.絕大多數(shù)人都遇不見這些平臺(tái).Numascale

CONFIG_X86_NUMACHIP

NumascaleNumaChip平臺(tái)支持ScaleMPCONFIG_X86_VSMPScaleMPvSMP平臺(tái)支持SGI

CONFIG_X86_UV

SGIUltraviolet平臺(tái)支持Intel

Low

Power

Subsystem

SupportUltraviolet

vSMPNumaChip

CONFIG_X86_INTEL_LPSS

為IntelLynxPointPCH中的IntelLowPowerSubsystem技術(shù)提供支持.這個(gè)芯片組主要是為采用LGA1150的Haswell處理器提供支持.Single-depth

CONFIG_SCHED_OMIT_FRAME_POINTER

使用簡(jiǎn)化的/proc//wchan值,禁用此選項(xiàng)會(huì)使用更加確切的wchan值(可以在\結(jié)果的WCHAN域看到),但會(huì)微弱增加調(diào)度器消耗.Linux

CONFIG_HYPERVISOR_GUEST

假使這個(gè)內(nèi)核將在虛擬機(jī)里面運(yùn)行就開啟,否則就關(guān)閉.Enable

CONFIG_PARAVIRT

半虛擬化(paravirtualization)支持.paravirt-ops

CONFIG_PARAVIRT_DEBUG

僅供調(diào)試.paravirt-ops是內(nèi)核通用的半虛擬化接口.ParavirtualizationCONFIG_PARAVIRT_SPINLOCKS

半虛擬化的自旋鎖支持.開啟之后運(yùn)行在虛擬機(jī)里的內(nèi)核速度會(huì)加快,但是運(yùn)行在物理CPU上的宿主內(nèi)核運(yùn)行效率會(huì)降低(最多可能會(huì)降低5%).請(qǐng)根據(jù)實(shí)際狀況選擇.XenCONFIG_XEN

Xen半虛擬化技術(shù)支持Enable

Xen

debug

and

tuning

parameters

in

debugfs

guest

support

layer

for

spinlocksdebugging

paravirtualization

code

guest

support

WCHAN

output

CONFIG_XEN_DEBUG_FS

為Xen在debugfs中輸出各種統(tǒng)計(jì)信息和調(diào)整選項(xiàng).對(duì)性能有嚴(yán)重影響.僅供調(diào)試.KVM

Guest

support

(including

kvmclock)

CONFIG_KVM_GUEST

KVM客戶機(jī)支持(包括kvmclock).Paravirtual

steal

time

accounting

CONFIG_PARAVIRT_TIME_ACCOUNTING

允許進(jìn)行更細(xì)粒度的taskstealtime統(tǒng)計(jì).會(huì)造成性能的略微降低.僅在你確實(shí)需要的時(shí)候才開啟.MemtestCONFIG_MEMTEST

為內(nèi)核添加內(nèi)存測(cè)試功能,也就是添加\內(nèi)核引導(dǎo)參數(shù)以支持對(duì)內(nèi)存進(jìn)行\(zhòng)體檢\僅在你確實(shí)知道這是什么東西并且確實(shí)需要的時(shí)候再開啟.否則請(qǐng)關(guān)閉.

Processorfamily

處理器系列,請(qǐng)依照你實(shí)際使用的CPU選擇.\表示通用于所有x86-64平臺(tái),而不是針對(duì)特定類型的CPU進(jìn)行優(yōu)化.Supported

CONFIG_PROCESSOR_SELECT支持的CPU廠商,按實(shí)際狀況選擇.EnableCONFIG_DMI

允許掃描DMI(DesktopManagementInterface)/SMBIOS(SystemManagementBIOS)以獲得機(jī)器的硬件配置,從而對(duì)已知的bugbios進(jìn)行規(guī)避.具體涉及到哪些機(jī)器可參見\文件.除非確定你的機(jī)器沒(méi)有bug,否則請(qǐng)開啟此項(xiàng).GART

CONFIG_GART_IOMMU

為較舊的AMDAthlon64/Opteron/Turion/SempronCPU提供GARTIOMMU支持.圖形地址重映射表(GraphicsAddressRemappingTable)可以將物理地址不連續(xù)的系統(tǒng)內(nèi)存映射成看上去連續(xù)的圖形內(nèi)存交給GPU使用,是一種挖CPU內(nèi)存補(bǔ)GPU內(nèi)存機(jī)制,這種機(jī)制也可以被認(rèn)為是一種\偽IOMMU\缺乏地址空間隔離和訪問(wèn)控制).開啟此選項(xiàng)以后,在內(nèi)存大于3G的系統(tǒng)上,傳統(tǒng)的32位總線(PCI/AGP)

IOMMU

support

DMI

scanning

processor

vendors

的設(shè)備將可以使用完全DMA的方式直接訪問(wèn)原本超出32位尋址范圍之外的系統(tǒng)內(nèi)存區(qū)域.具體方法是:通過(guò)編程讓設(shè)備在受GART控制的顯存區(qū)域工作,然后使用GART將這個(gè)地址映射為真實(shí)的物理地址(4GB以上)來(lái)實(shí)現(xiàn)的.USB/聲卡/IDE/SATA之類的設(shè)備往往需要它.開啟此選項(xiàng)之后,除非同時(shí)開啟了CONFIG_IOMMU_DEBUG選項(xiàng)或者使用了\內(nèi)核引導(dǎo)參數(shù),否則此特性僅在條件滿足的狀況下(內(nèi)存足夠大且確有支持GART的設(shè)備)激活.由于較新的AMDCPU都已配備了AMDIOMMU(應(yīng)當(dāng)使用CONFIG_AMD_IOMMU),故而僅建議在內(nèi)存大于3G的老式AMD系統(tǒng)上選\IBM

Calgary

IOMMU

support

CONFIG_CALGARY_IOMMU

IBMxSeries/pSeries系列服務(wù)器的CalgaryIOMMU支持.Should

Calgary

be

enabled

by

default?

CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT

開啟此選項(xiàng)表示默認(rèn)啟用Calgary特性,關(guān)閉此選項(xiàng)表示默認(rèn)禁用Calgary特性(可以使用\內(nèi)核引導(dǎo)參數(shù)開啟).

EnableMaximumnumberofSMPProcessorsandNUMANodesCONFIG_MAXSMP

讓內(nèi)核支持x86_64平臺(tái)所能支持的最大SMP處理器數(shù)量和最大NUMA節(jié)點(diǎn)數(shù)量.主要用于調(diào)試目的.MaximumCONFIG_NR_CPUS

支持的最大CPU數(shù)量,每個(gè)CPU要占8KB的內(nèi)核鏡像,最小有效值是\最大有效值是\注意:對(duì)于多核CPU而言,每個(gè)核算一個(gè).SMT

(Hyperthreading)

scheduler

support

number

of

CPUs

CONFIG_SCHED_SMT

Intel超線程技術(shù)(HyperThreading)支持.Multi-coreCONFIG_SCHED_MC

針對(duì)多核CPU進(jìn)行調(diào)度策略優(yōu)化

scheduler

support

PreemptionModel內(nèi)核搶占模式No

Forced

Preemption

(Server)

CONFIG_PREEMPT_NONE

阻止內(nèi)核搶占,這是Linux的傳統(tǒng)模式,可以得到最大的吞吐量,適合服務(wù)器和科學(xué)計(jì)算環(huán)境Voluntary

Kernel

Preemption

(Desktop)

CONFIG_PREEMPT_VOLUNTARY

自愿內(nèi)核搶占,通過(guò)在內(nèi)核中設(shè)置明確的搶占點(diǎn)以允許明確的內(nèi)核搶占,可以提高響應(yīng)速度,但是對(duì)吞吐量有不利影響.適合普通桌面環(huán)境的PreemptibleCONFIG_PREEMPT

主動(dòng)內(nèi)核搶占,允許搶占所有內(nèi)核代碼,對(duì)吞吐量有更大影響,適合需要運(yùn)行實(shí)時(shí)程序的場(chǎng)合或者追求最快響應(yīng)速度的桌面環(huán)境.Reroute

for

broken

boot

IRQs

Kernel

(Low-Latency

Desktop)

CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS

這是一個(gè)對(duì)某些芯片組bug(在某些狀況下會(huì)發(fā)送多余的\bootIRQ\的修復(fù)功能.開啟此選項(xiàng)之后,僅對(duì)有此bug的芯片組生效.要檢查哪些芯片組有此bug可以查看

\drivers/pci/quirks.c\

\函數(shù).MachineCONFIG_X86_MCE

MCE(MachineCheckException)支持.讓CPU檢測(cè)到硬件故障(過(guò)熱/數(shù)據(jù)錯(cuò)誤)時(shí)通知內(nèi)核,以便內(nèi)核采取相應(yīng)的措施(如顯示一條提醒信息或關(guān)機(jī)等).更多信息可以\mcelog\看看.可以通過(guò)\mce/proc/cpuinfo\檢查CPU是否支持此特性,若支持建議選中,否則請(qǐng)關(guān)閉.當(dāng)然,假使你對(duì)自己的硬件質(zhì)量很放心,又是桌面系統(tǒng)的話,不選也無(wú)所謂.Intel

CONFIG_X86_MCE_INTEL

MCE

features

Check

/

overheating

reporting

IntelCPU支持AMD

CONFIG_X86_MCE_AMDAMDCPU支持Machine

check

injector

support

MCE

features

CONFIG_X86_MCE_INJECTMCE注入支持,僅用于調(diào)試Enable

support

for

16-bit

segments

CONFIG_X86_16BIT

假使你需要使用Wine運(yùn)行那些古董級(jí)的16位保護(hù)模式程序,就選\否則選\DellCONFIG_I8K

DellInspiron8000筆記本的SystemManagementMode驅(qū)動(dòng)(i8k).該驅(qū)動(dòng)可以讀取CPU溫度和風(fēng)扇轉(zhuǎn)速,進(jìn)而幫助上層工具控制風(fēng)扇轉(zhuǎn)速.該驅(qū)動(dòng)僅針對(duì)DellInspiron8000筆記本進(jìn)行過(guò)測(cè)試,所以不保證一定能適用于其他型號(hào)的Dell筆記本.CPU

CONFIG_MICROCODE

CPU的微代碼更新支持,建議選中.CPU的微代碼更新就像是給CPU打補(bǔ)丁,用于改正CPU的行為.更新微代碼的常規(guī)方法是升級(jí)BIOS,但是也可以在Linux啟動(dòng)后更新.譬如在Gentoo下,可以使用\安裝microcode-ctl服務(wù),再把這個(gè)服務(wù)參與boot運(yùn)行級(jí)即可在每次開機(jī)時(shí)自動(dòng)更新CPU微代碼.其他Linux系統(tǒng)可以參考這個(gè)帖子.Intel

microcode

loading

support

microcode

loading

support

laptop

support

CONFIG_MICROCODE_INTELIntelCPU微代碼支持AMD

microcode

loading

support

CONFIG_MICROCODE_AMD

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論