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