CPU内核配置(一):通用内核配置
General setup
常規(guī)設(shè)置
Prompt for development and/or incomplete code/drivers?
顯示尚在開發(fā)中或尚未完成的代碼與驅(qū)動(dòng)?
Local version - append to kernel release?
在內(nèi)核版本后面加上自定義的版本字符串(小于64字符),可以用"uname -a"命令看到?
Automatically append version information to the version string?
自動(dòng)在版本字符串后面添加版本信息,編譯時(shí)需要有perl以及git倉庫支持?
Support for paging of anonymous memory (swap)?
使用交換分區(qū)或者交換文件來做為虛擬內(nèi)存?
System V IPC?
System V進(jìn)程間通信(IPC)支持,許多程序需要這個(gè)功能.必選,除非你知道自己在做什么?
POSIX Message Queues?
POSIX消息隊(duì)列,這是POSIX IPC中的一部分?
BSD Process Accounting?
將進(jìn)程的統(tǒng)計(jì)信息寫入文件的用戶級(jí)系統(tǒng)調(diào)用,主要包括進(jìn)程的創(chuàng)建時(shí)間/創(chuàng)建者/內(nèi)存占用等信息?
??
BSD Process Accounting version 3 file format?
使用新的第三版文件格式,可以包含每個(gè)進(jìn)程的PID和其父進(jìn)程的PID,但是不兼容老版本的文件格式
Export task/process statistics through netlink?
通過netlink接口向用戶空間導(dǎo)出任務(wù)/進(jìn)程的統(tǒng)計(jì)信息,與BSD Process Accounting的不同之處在于這些統(tǒng)計(jì)信息在整個(gè)任務(wù)/進(jìn)程生存期都是可用的(不確定可以不選)?
??
Enable per-task delay accounting?
在統(tǒng)計(jì)信息中包含進(jìn)程等候系統(tǒng)資源(cpu,IO同步,內(nèi)存交換等)所花費(fèi)的時(shí)間??
Enable extended accounting over taskstats?
在統(tǒng)計(jì)信息中包含擴(kuò)展進(jìn)程所花費(fèi)的時(shí)間??
??
Enable per-task storage I/O accounting?
在統(tǒng)計(jì)信息中包含I/O存儲(chǔ)進(jìn)程所花費(fèi)的時(shí)間?
Auditing support?
審計(jì)支持,某些內(nèi)核模塊(例如SELinux)需要它,只有同時(shí)選擇其子項(xiàng)才能對系統(tǒng)調(diào)用進(jìn)行審計(jì)?
??
Enable system-call auditing support?
支持對系統(tǒng)調(diào)用的審計(jì)
Kernel .config support?
把內(nèi)核的配置信息編譯進(jìn)內(nèi)核中,以后可以通過scripts/extract-ikconfig腳本來提取這些信息?
??
Enable access to .config through /proc/config.gz?
允許通過/proc/config.gz訪問內(nèi)核的配置信息
Kernel log buffer size (16 => 64KB, 17 => 128KB)?
內(nèi)核信息大小?
Control Group support?
cgroup支持,如cpusets那樣來使用cgroup子系統(tǒng)進(jìn)程(不確定可以不選)?
??
Example debug cgroup subsystem?
cgroup子系統(tǒng)調(diào)試?yán)??
Namespace cgroup subsystem?
cgroup子系統(tǒng)命名空間??
Device controller for cgroups?
cgroups設(shè)備控制器??
Cpuset support?
只有含有大量CPU(大于16個(gè))的SMP系統(tǒng)或NUMA(非一致內(nèi)存訪問)系統(tǒng)才需要它
Group CPU scheduler?
CPU組調(diào)度(Group Scheduling,可以為進(jìn)程賦予不同于nice level的調(diào)度優(yōu)先級(jí)。尤其在企業(yè)級(jí)硬件系統(tǒng)上,可以進(jìn)一步優(yōu)化實(shí)時(shí)任務(wù)的調(diào)度。桌面用戶可以不選)?
??
Group scheduling for SCHED_OTHER?
SCHED_OTHER(SCHED:Process Scheduler,負(fù)責(zé)控制進(jìn)程對CPU的使用.調(diào)度算法的公平,有效,硬件有關(guān)事件的及時(shí)處理)組調(diào)度??
Group scheduling for SCHED_RR/FIFO?
SCHED_RR?FIFO組調(diào)度??
Basis for grouping tasks?
基于分配的任務(wù)??
??
user id?
使用者id??
Control groups?
控制組?
Simple CPU accounting cgroup subsystem?
簡單cgroup子系統(tǒng)cpu所花費(fèi)的時(shí)間?
Resource counters?
資源計(jì)數(shù)器?
Memory Resource Controller for Control Groups?
cgroup內(nèi)存資源控制器?
Create deprecated sysfs files?
建立過時(shí)的sysfs文件系統(tǒng)(雖然寫著過時(shí)然而許多版本仍然有編譯)?
Include legacy /proc//cpuset file?
創(chuàng)建/proc//cpuset文件?
Kernel->user space relay support (formerly relayfs)?
在某些文件系統(tǒng)上(比如debugfs)提供從內(nèi)核空間向用戶空間傳遞大量數(shù)據(jù)的接口?
Namespaces support?
命名空間支持,允許服務(wù)器為不同的用戶信息提供不 同的用戶名空間服務(wù)?
??
UTS namespace?
UTS命名空間,不確定可以不選??
IPC namespace?
IPC命名空間,不確定可以不選??
User namespace?
User命名空間,不確定可以不選??
PID Namespaces?
PID命名空間,不確定可以不選
Initial RAM filesystem and RAM disk (initramfs/initrd) support?
初始RAM的文件和RAM磁盤( initramfs /initrd)支持(如果要采用initrd啟動(dòng)則要選擇,否則可以不選)?
??
Initramfs source file(s)?
initrd已經(jīng)被initramfs取代,如果你不明白這是什么意思,請保持空白
Optimize for size (Look out for broken compilers!)?
編譯時(shí)優(yōu)化內(nèi)核尺寸(使用"-Os"而不是"-O2"參數(shù)編譯),有時(shí)會(huì)產(chǎn)生錯(cuò)誤的二進(jìn)制代碼?
Configure standard kernel features (for small systems)?
配置標(biāo)準(zhǔn)的內(nèi)核特性(為小型系統(tǒng))?
??
Enable 16-bit UID system calls?
允許對UID系統(tǒng)調(diào)用進(jìn)行過時(shí)的16-bit包裝??
Sysctl syscall support?
不需要重啟就能修改內(nèi)核的某些參數(shù)和變量,如果你也選擇了支持/proc,將能從/proc/sys存取可以影響內(nèi)核行為的參數(shù)或變量??
Load all symbols for debugging/kksymoops?
裝載所有的調(diào)試符號(hào)表信息,僅供調(diào)試時(shí)選擇??
??
Include all symbols in kallsyms?
在kallsyms中包含內(nèi)核知道的所有符號(hào),內(nèi)核將會(huì)增大300K??
Do an extra kallsyms pass?
除非你在kallsyms中發(fā)現(xiàn)了bug并需要報(bào)告這個(gè)bug才打開該選項(xiàng)?
??
Support for hot-pluggable devices?
支持熱插拔設(shè)備,如usb與pc卡等,Udev也需要它??
Enable support for printk?
允許內(nèi)核向終端打印字符信息,在需要診斷內(nèi)核為什么不能運(yùn)行時(shí)選擇??
BUG() support?
顯示故障和失敗條件(BUG和WARN),禁用它將可能導(dǎo)致隱含的錯(cuò)誤被忽略??
Enable ELF core dumps?
內(nèi)存轉(zhuǎn)儲(chǔ)支持,可以幫助調(diào)試ELF格式的程序??
Enable PC-Speaker support?
允許禁用電腦內(nèi)部聲響
Disable heap randomization?
禁用隨機(jī)heap(heap堆是一個(gè)應(yīng)用層的概念,即堆對CPU是不可見的,它的實(shí)現(xiàn)方式有多種,可以由OS實(shí)現(xiàn),也可以由運(yùn)行庫實(shí)現(xiàn),如果你愿意,你也可以在一個(gè)棧中來實(shí)現(xiàn)一個(gè)堆)?
Enable full-sized data structures for core?
在內(nèi)核中使用全尺寸的數(shù)據(jù)結(jié)構(gòu).禁用它將使得某些內(nèi)核的數(shù)據(jù)結(jié)構(gòu)減小以節(jié)約內(nèi)存,但是將會(huì)降低性能?
Enable futex support?
快速用戶空間互斥體可以使線程串行化以避免競態(tài)條件,也提高了響應(yīng)速度.禁用它將導(dǎo)致內(nèi)核不能正確的運(yùn)行基于glibc的程序?
Enable eventpoll support?
支持事件輪循的系統(tǒng)調(diào)用?
Enable signalfd() system call?
啟用signalfd()事件的文件描述符系統(tǒng)調(diào)用?
Enable timerfd() system call?
啟用timerfd()事件的文件描述符系統(tǒng)調(diào)用?
Enable eventfd() system call?
啟用eventfd()事件的文件描述符系統(tǒng)調(diào)用?
Use full shmem filesystem?
完全使用shmem來代替ramfs.shmem是基于共享內(nèi)存的文件系統(tǒng)(可能用到swap),在啟用TMPFS后可以掛載為tmpfs供用戶空間使用,它比簡單的ramfs先進(jìn)許多?
Enable VM event counters for /proc/vmstat?
允許在/proc/vmstat中包含虛擬內(nèi)存事件記數(shù)器?
Enable SLUB debugging support?
支持SLUB內(nèi)存分配管理器調(diào)試?
Choose SLAB allocator?
選擇內(nèi)存分配管理器(強(qiáng)烈推薦使用SLUB)?
??
SLAB?
各種環(huán)境通用的內(nèi)存分配管理器??
SLUB (Unqueued Allocator)?
更加優(yōu)秀的內(nèi)存分配管理器??
SLOB (Simple Allocator)?
嵌入式應(yīng)用的內(nèi)存分配管理器
Profiling support?
支持系統(tǒng)評測(對于大多數(shù)用戶來說并不是必須的)?
Activate markers?
激活標(biāo)志(不確定可以不選)?
OProfile system profiling?
OProfile評測和性能監(jiān)控工具?
Kprobes?
除非開發(fā)人員,否則不選?
Enable /proc page monitoring?
啟用/proc目錄檢測?
Loadable module support
可加載模塊支持
Enable loadable module support?
打開可加載模塊支持,如果打開它則必須通過"make modules_install"把內(nèi)核模塊安裝在/lib/modules/中?
Forced module loading?
允許強(qiáng)制加載模塊?
Module unloading?
允許卸載已經(jīng)加載的模塊?
??
Forced module unloading?
允許強(qiáng)制卸載正在使用中的模塊(比較危險(xiǎn))
Module versioning support?
允許使用其他內(nèi)核版本的模塊(可能會(huì)出問題)?
Source checksum for all modules?
為所有的模塊校驗(yàn)源碼,如果你不是自己編寫內(nèi)核模塊就不需要它?
Automatic kernel module loading?
讓內(nèi)核通過運(yùn)行modprobe來自動(dòng)加載所需要的模塊,比如可以自動(dòng)解決模塊的依賴關(guān)
Block layer
塊設(shè)備層
Enable the block layer?
塊設(shè)備支持,使用硬盤/USB/SCSI設(shè)備者必選?
??
Support for Large Block Devices?
僅在使用大于2TB的塊設(shè)備時(shí)需要??
Support for tracing block io actions?
塊隊(duì)列IO跟蹤支持,它允許用戶查看在一個(gè)塊設(shè)備隊(duì)列上發(fā)生的所有事件,可以通過blktrace程序獲得磁盤當(dāng)前的詳細(xì)統(tǒng)計(jì)數(shù)據(jù)??
Support for Large Single Files?
僅在可能使用大于2TB的文件時(shí)需要??
Block layer SG support v4?
通用scsi塊設(shè)備第4版支持??
Block layer data integrity support?
塊設(shè)備數(shù)據(jù)完整性支持??
IO Schedulers?
IO調(diào)度器??
??
Anticipatory I/O scheduler?
假設(shè)一個(gè)塊設(shè)備只有一個(gè)物理查找磁頭(例如一個(gè)單獨(dú)的SATA硬盤),將多個(gè)隨機(jī)的小寫入流合并成一個(gè)大寫入流,用寫入延時(shí)換取最大的寫入吞吐量.適用于大多數(shù)環(huán)境,特別是寫入較多的環(huán)境(比如文件服務(wù)器)??
Deadline I/O scheduler?
使用輪詢的調(diào)度器,簡潔小巧,提供了最小的讀取延遲和尚佳的吞吐量,特別適合于讀取較多的環(huán)境(比如數(shù)據(jù)庫)??
CFQ I/O scheduler?
使用QoS策略為所有任務(wù)分配等量的帶寬,避免進(jìn)程被餓死并實(shí)現(xiàn)了較低的延遲,可以認(rèn)為是上述兩種調(diào)度器的折中.適用于有大量進(jìn)程的多用戶系統(tǒng)??
Default I/O scheduler?
默認(rèn)IO調(diào)度器(建議選擇CFQ)
轉(zhuǎn)載于:https://www.cnblogs.com/image-eye/archive/2012/01/05/2202309.html
總結(jié)
以上是生活随笔為你收集整理的CPU内核配置(一):通用内核配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拟澳洲赤眼蜂在农业防治中的作用
- 下一篇: 用深度学习(CNN RNN Attent