国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Devyn的Linux內核專題:配置內核(2)

系統 Linux
這一部分我們講配置內核IRQ子系統。中斷請求(IRQ)是硬件發給處理器的一個信號,它暫時停止一個正在運行的程序并允許一個特殊的程序占用CPU運行。

這一部分我們講配置內核IRQ子系統。中斷請求(IRQ)是硬件發給處理器的一個信號,它暫時停止一個正在運行的程序并允許一個特殊的程序占用CPU運行。

這個目錄中的第一個問題屬于內核特性(Expose hardware/virtual IRQ mapping via debugfs (IRQ_DOMAIN_DEBUG))(通過debugfs來顯示硬件/虛擬的IRQ映射),它詢問是否可以使用虛擬的調試文件系統來映射硬件及Linux上對應的IRQ中斷號。這個用作調試目的,大多數用戶不需要用到,所以我選擇了"no"。

下一個標題顯示"Timers subsystem"(計時器子系統)。第一個有關定時器子系統的問題是“Tickless System (Dynamic Ticks) (NO_HZ)”(無滴答系統)。我選擇了“yes”,這會啟用一個無滴答系統。這意味著定時器中斷將會按需使用,定時器中斷允許任務以特定的時間間隔執行。下一個問題(High Resolution Timer Support (HIGH_RES_TIMERS))問是否支持高精度定時器。并不是所有的硬件支持這個,通常地說,如果硬件很慢或很舊,那么選擇"no",否則像我一樣選擇"yes"。

下一個標題"CPU/Task time and stats accounting"(CPU/任務用時與狀態統計),這個是關于進程的追蹤。第一個問題看上去像這樣:

Cputime accounting (CPU用時統計)

  1. Simple tick based cputime accounting (TICK_CPU_ACCOUNTING) (簡單基于滴答的用時統計)
  2. Full dynticks CPU time accounting (VIRT_CPU_ACCOUNTING_GEN) (NEW) (全動態滴答的用時統計)
  3. Fine granularity task level IRQ time accounting (IRQ_TIME_ACCOUNTING) (細粒度的任務級IRQ用時統計)

TICKCPUACCOUNTING會在每個CPU滴答中檢測/proc/stat。這是默認的選項,這個記賬方法非常簡單。

注意:CPU滴答是抽象測量CPU時間的方式。每個處理器、操作系統和安裝的系統都不同,比如說,一個更強大的處理器會比老的處理器擁有更多的CPU滴答。如果你安裝了一個Linux系統,然后接著在同一塊磁盤上重新安裝了它,你可能會得到一個更快或更慢的CPU滴答時間(至少一些計算機技術書上這么說)。通常來講,一個更快的時鐘速度意味著更多的CPU滴答。

如果啟用了VIRT_CPU_ACCOUNTING_GEN,任務和CPU時間統計將由監視內核-用戶邊界實現。這個選擇的代價是會增加額外的開銷。

IRQ_TIME_ACCOUNTING記賬方式則通過檢測IRQ狀態間的時間戳工作,這個性能開銷很小。

我選擇了"1"并被詢問有關BSD記賬"BSD Process Accounting (BSD_PROCESS_ACCT)"(BSD進程記賬)的問題。這個內核特性會記錄每個進程不同的關閉信息。為了得到一個更小和更快的內核,我選擇了"no".

下一組問題看上去就像下面這樣。

  • Export task/process statistics through netlink (TASKSTATS) (通過netlink導出任務/進程統計數據)
  • Enable per-task delay accounting (TASK_DELAY_ACCT) (啟用針對每個任務的延遲統計)
  • Enable extended accounting over taskstats (TASK_XACCT) (啟用taskstats的擴展統計)

TASKSTATS使內核可以通過網絡套接字導出進程統計。網絡套接字是內核和用戶空間進程間IPC通信的一種形式。TASKDELAY\ACCT監視進程并注意資源訪問的延遲。比如,TASKDELAYACCT可以看到X進程正在為了CPU時間而等待,如果TASK_DELAY_ACCT觀察到進程已經等待了太長時間,這個進程接著就會被給予一些CPU時間。TASK_XACCT會收集額外的統計數據,為了更小的內核負載我會禁用這個。

現在接下來的目錄就會顯示RCU子系統:讀取-復制-更新子系統是一種低負載的同步機制,它允許程序查看到正在被修改/更新的文件。配置工具已經回答了第一個問題。

RCU Implementation (RCU 實現方式)

> 1. Tree-based hierarchical RCU (TREE_RCU) (樹形分層結構的RCU)

choice[1]: 1

這里就選擇“1”。除了TREE_RCU,還有classic RCU(更老的實現)。下一個問題(Consider userspace as in RCU extended quiescent state (RCU_USER_QS) [N/y/?])(是否在用戶空間記錄擴展的quiescent狀態)問RCU是否可以在CPU運行在用戶空間時設置一個特殊的quiescent狀態。這個選項通常被禁用,因為這會增加太多消耗。下面是另一個RCU問題(Tree-based hierarchical RCU fanout value (RCU_FANOUT) [64])(樹形分層結構的RCU端點數),問的是關于端點數。下一個問題(Tree-based hierarchical RCU leaf-level fanout value (RCU_FANOUT_LEAF) [16])(樹形分層結構的RCU葉級端點數),是另外一個關于端點數的問題,但它只處理葉級。還有另外一個RCU問題(Disable tree-based hierarchical RCU auto-balancing (RCU_FANOUT_EXACT) [N/y/?])(是否禁用樹形分層結構的RCU的自動平衡),詢問是否禁用RCU自動平衡樹,而采用上述的端點數。

接下來,配置腳本將會詢問"Accelerate last non-dyntick-idle CPU's grace periods (RCU_FAST_NO_HZ)"(加速最后的非dyntick-idle CPU的RCU寬限期)。在這之后會顯示"Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU)"(從選擇引導的CPU里面卸載RCU回調)。(譯注:此處作者沒做解釋。前一個能夠節省電力,但是降低了性能;后一個用于調試。)

下一個問題非常重要(Kernel .config support (IKCONFIG))(內核的.config支持)。開發人員可以選擇保存由這個配置工具生成的設置到一個文件中。這個文件可以放在內核中,也可在一個模塊中,或者完全不保存。這個文件可以被想要編譯一個完全跟某人相同內核的開發者使用。這個文件還可以幫助開發人員使用一個更新的編譯器重新編譯一個內核。舉例來說,開發人員配置并編譯了一個內核,然而編譯器有一些bug,但開發人員仍然需要一個使用這些設置的內核。而值得慶幸的是,開發人員可以升級他們的編譯器,并使用設置文件來節省他們重新配置內核的時間。開發人員也可以在另一臺計算機上保存源代碼和配置文件并編譯內核。至于另一個目的,開發人員可以加載該文件,并根據需要調整設置。我選擇保存配置文件在一個模塊中,這個問題 "Enable access to .config through /proc/config.gz (IKCONFIG_PROC)"(啟用通過/proc/config.gz來訪問.config的功能)是詢問這個文件是否是可以通過這次方式訪問的,我選擇了"yes"。

下一個問題是內核使用多大的log緩沖區(Kernel log buffer size (16 => 64KB, 17 => 128KB) (LOG_BUF_SHIFT) [17])(內核日志緩沖區大小)。小的緩沖區意味著它無法像更大的緩沖區那樣保持日志更長的時間。這個選擇取決于開發者想要日志保持的時間,我選擇的是"12"。

接著,出現了另外一個問題。該問題詢問關于是否啟用NUMA(非一致性內存訪問)的內存/任務的均衡(Automatically enable NUMA aware memory/task placement (NUMA_BALANCING_DEFAULT_ENABLED))(自動啟用NUMA的內存/任務均衡)。如果在NUMA的機器上設置了該選項,那么NUMA自動平衡就會啟用。在NUMA下,處理器可以比非本地內存(內存分配給另外一個處理器或在處理器之間共享的內存)更快地訪問它的本地內存。如果上面啟用了(我啟用了),那么最好對這個問題"Memory placement aware NUMA scheduler (NUMA_BALANCING)"(由NUMA調度器進行內存分配)回答"yes",這是一個NUMA調度器。

在新的標題"Control Group support"(Cgroup支持)下,因為先前的選擇,"Control Group support (CGROUPS)"(Cgroup支持)被自動地回答了"yes"。

以下設定(Example debug cgroup subsystem (CGROUP_DEBUG))(導出Cgroup子系統的調試信息)是啟用一個用于調試cgroup框架的一個簡單cgroup子系統。下一個選項(Freezer cgroup subsystem (CGROUP_FREEZER))(凍結Cgroup子系統)可以讓程序員可以凍結或解凍cgroup內的任務。

注意:cgroup是一組進程。

下面我們要求回答"Device controller for cgroups (CGROUP_DEVICE)"(Cgroup的設備控制器)。cgroup(控制組)是一種用來控制資源使用的特性。回答"yes"可以允許設備cgroup的白名單可以使用open和mknod系統調用(用來創建文件系統節點的系統調用)。

下一個問題(Cpuset support (CPUSETS))(CPU分組支持)詢問的是內核是否可以創建和管理CPU分組。這允許管理員可以在一個系統上動態分配各組內存節點,并分配任務在這些內存上運行。這通常用于SMP和NUMA系統中。我這個問題回答的是"no"。

注意:請記住,如果我沒有指定我選的是什么,那么我選的就是默認選項。

啟用cgroup統計子系統(Simple CPU accounting cgroup subsystem (CGROUP_CPUACCT))(Cgroup子系統的簡單CPU統計)會生成一個資源控制器來監控在一個cgroup組內的獨立任務的CPU使用情況。我選擇了"no"。

資源計數器(Resource counters (RESOURCE_COUNTERS))使控制器的獨立資源統計功能能夠統計cgroup。我選擇了"no"。

下一個問題(Enable perf_event per-cpu per-container group (cgroup) monitoring (CGROUP_PERF))(啟用每個CPU、每個容器組的pref_event監控)允許開發者擴展每個CPU的模式,使它可以只監控運行在特定CPU上的一個特別的cgroup組的線程。

下一章節是"Group CPU Scheduler"(CPU分組調度器)。前兩個已經回答的問題包括:

Group CPU scheduler (CGROUPSCHED)(CPU分組調度器) Group scheduling for SCHEDOTHER (FAIRGROUP\SCHED)(SCHED_OTHER分組調度)

第一個已回答的問題(CPU bandwidth provisioning for FAIR_GROUP_SCHED (CFS_BANDWIDTH))(CPU帶寬分配)詢問的是內核是否允許用戶設置在公平組調度器內執行的任務的CPU帶寬限制。沒有限制的組會被認為不受約束,并會沒有限制地運行。

注意:并不是所有內核選項都在這里。我這里提到的組只是為了便于閱讀,并挑出那些新的和大的部分。并不需要了解所有的分組。分組有助于使用圖形工具配置內核,這樣開發者可以在搜索特定的設置時,直接通過分組菜單找到。

開發者可以通過回答"Group scheduling for SCHED_RR/FIFO (RT_GROUP_SCHED)"(SCHED_RR/FIFO分組調度)這個問題為"yes"來讓用戶可以分配CPU帶寬到任務組中。

下一個問題是"Block IO controller (BLK_CGROUP)"(阻塞IO控制器)。任務組可以被識別,并且它們的磁盤帶寬是由使用塊IO控制器實現的CFQ IO調度器分配的。BIO在塊級的限制邏輯使用塊IO控制器來提供設備上的IO速率上限。

這里有一個調試問題(Enable Block IO controller debugging (DEBUGBLKCGROUP) [N/y/?])(啟用阻塞IO控制器的調試)詢問是否啟用塊IO控制器的調試。為了制作一個精簡的內核,最好禁用這個特性。

為了啟用內核中的檢查點和還原特性。這個問題“Checkpoint/restore support (CHECKPOINT_RESTORE)”(檢查點及還原支持)可以選擇“yes”,不過為了更低的負載這里我選擇了“n”。啟用這個特性會增加輔助的進程控制代碼來設置進程的代碼段、數據段和堆的大小,并增加了一些額外的程序入口。

下面我們就要配置命名空間的支持了。命名空間是一組標識符的容器。比如,/usr/lib/python3/dist-packages/re.py就是一個標識符,/usr/lib/python3/dist-packages/就是一個命名空間。而re.py是這個命名空間下的本地名稱。

第一個命名空間問題(Namespaces support (NAMESPACES))詢問的是是否啟用命名空間。這允許可以使用相同的PID但在不同的命名空間內(譯注:原文為" This will allow the same PIDs (Process ID) to be used but indifferent namespaces",這里indiffernt根據上下文應該是少了空格),否則PID永遠不會重復。

下一個問題(UTS namespace (UTS_NS))詢問是否可以讓UTS命名空間內的任務可以在uname()系統調用中看到不同的信息。uname()系統調用提供查看機器和操作系統的信息。

啟用IPC命名空間(IPC namespace (IPC_NS))將允許在這個命名空間內的任務與其他命名空間內相對應IPC ID的對象協同工作。

PID命名空間(PID Namespaces (PID_NS))就是進程ID命名空間。這可以使不同的進程在不同的PID命名空間使用相同的PID。這是一個容器的構建塊。

接下來,啟用網絡命名空間(Network namespace (NET_NS))可以使用戶創建一個擁有多個實例的網絡棧。

當啟用后,自動進程分組調度(SCHED_AUTOGROUP)會填充并創建任務組來優化桌面程序的調度。它將把占用大量資源的應用程序放在它們自己的任務組,這有助于性能提升。

這里是一個調試特性,除非你有特別的需求否則應該禁用它。這個問題(Enable deprecated sysfs features to support old userspace tools (SYSFS_DEPRECATED))(啟用不推薦的sysfs功能來支持舊式的用戶空間工具)詢問是否啟用sysfs,這是調試內核時用的虛擬文件系統。

接下來,因為當前的配置需要它,所以"Kernel->user space relay support (formerly relayfs) (RELAY)"(內核->用戶空間的中繼支持,即relayfs)已經被設成"yes"了。最好啟用initrd支持(Initial RAM filesystem and RAM disk (initramfs/initrd) support (BLK_DEV_INITRD))(初始化內存文件系統和內存盤(initramfs/initrd))。

用戶會被問及哪里放置initramfs源文件。如果沒有需要,請留空。

接下來,開發人員會被詢問關于初始虛擬磁盤(Linux的內核映像文件)所支持的壓縮格式。你可以啟用所有支持的壓縮格式。

Support initial ramdisks compressed using gzip (RD_GZIP)

Support initial ramdisks compressed using bzip2 (RD_BZIP2)

Support initial ramdisks compressed using LZMA (RD_LZMA)

Support initial ramdisks compressed using XZ (RD_XZ)

Support initial ramdisks compressed using LZO (RD_LZO)

這里設置了內核的編譯內核編譯選項(Optimize for size (CC_OPTIMIZE_FOR_SIZE))(優化大小)。開發者可以讓編譯器在編譯時優化代碼。我選擇了"yes"。

用戶想要配置更多的內核特性,那么下個問題就回答"yes"(Configure standard kernel features (expert users) (EXPERT))(配置標準內核特性(專家級用戶))。

要啟用過時的16位UID系統調用封裝器,這個問題設成"yes"(Enable 16-bit UID system calls (UID16))。系統調用就會使用16位UID。

推薦啟用"sysctl syscall"(Sysctl syscall support (SYSCTL_SYSCALL))支持。這使/proc/sys成為二進制路徑的接口。

接下來的兩個問題已經被預先回答了"yes",它們是"Load all symbols for debugging/ksymoops (KALLSYMS)"(載入所以的調試符號)和"“Include all symbols in kallsyms (KALLSYMS_ALL)"(包括所有的kallsyms符號)。這些都是啟用調試標志。

下一步,開發者應該啟用printk支持( (Enable support for printk (PRINTK))),這會輸出內核消息到內核日志中。這在內核出錯時是很重要的。編譯一個"啞巴"內核并不是一個好主意。然而,如果我們啟用了這個支持,就會被一些開發者看到這些出錯,要么就不要啟用。

除非有必要,開發者可以禁用bug支持(BUG() support (BUG))。禁用這項將會不支持WARN信息和BUG信息。這會減小內核的體積。

via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-2.4318/

責任編輯:奔跑的冰淇淋 來源: Linux中國
相關推薦

2013-11-07 13:59:56

Linux內核

2013-11-25 14:07:11

Linux內核內核特性

2013-11-05 09:58:39

Linux內核

2013-11-12 11:01:46

Linux內核

2013-10-31 14:09:14

Linux內核

2013-12-18 14:44:10

2013-11-05 09:55:37

2013-11-25 17:39:17

Linux內核PCIACPI

2013-10-31 14:15:10

2013-10-31 16:29:10

Linux內核

2013-12-18 11:14:57

Linux內核Linux Kerne

2013-12-20 13:08:12

Linux內核服務器

2009-12-09 09:27:35

linux內核

2021-02-20 06:08:07

LinuxWindows內核

2011-01-14 16:23:46

Linux內核

2010-03-02 09:17:32

Linux local

2013-05-13 09:52:52

Windows內核Linux內核

2010-01-13 09:58:42

2021-02-25 09:50:01

LinuxWindows內核

2010-04-21 12:54:46

Unix內核
點贊
收藏

51CTO技術棧公眾號

欧美日韩播放| 免费观看久久久4p| 国产精品一区二区久久国产| 精品在线手机视频| 欧美一级爽aaaaa大片| 精品少妇人妻av一区二区| eeuss鲁一区二区三区| 一本色道久久综合精品竹菊| 超碰av在线免费观看| 国产白丝精品91爽爽久久| 青青草原av在线播放| 亚洲视频1区2区| 午夜在线视频播放| 日韩视频免费在线| 亚洲免费专区| 日韩欧美手机在线| 久久久人人爽| 91热门视频在线观看| 成人一区二区不卡免费| 精品自拍视频在线观看| 日韩电影一区二区三区四区| 中文字幕日产av一二三区| 在线观看国产成人av片| 亚洲免费高清| 2222www色视频在线观看| 亚洲图片欧美日产| 国产精品一国产精品k频道56| 成年人视频网站| 久久久999成人| 免费成人美女在线观看.| 黄上黄在线观看| 色狠狠久久av五月综合|| 国模精品系列视频| 国产精品密蕾丝视频下载| 亚洲欧洲国产日韩| 日韩亚洲欧美一区二区三区| 欧美另类视频在线| 亚洲一区二区欧美激情| 欧美三级在线观看视频| 欧洲精品在线观看| 亚洲第一论坛sis| 亚洲国产欧美一区二区三区不卡| 亚洲午夜精品久久久久久久久| www.成人在线视频| 麻豆av一区二区| 黄色精品在线看| 女同另类激情重口| 青青草精品视频在线| 亚洲精品国产免费| 亚洲少妇在线| 亚洲s色大片| 成人羞羞视频免费| 欧美性xxxxxx| 成人在线视频免费观看| 成人做爰高清视频网站| 午夜精品一区二区三区在线视频| a级精品国产片在线观看| 韩漫成人漫画| 亚洲一区二区三区欧美| 精品日韩一区二区三区免费视频| 亚洲精品日本| 日本成人网址| 久久综合狠狠综合久久综青草| 欧美日韩亚洲精品一区二区三区| 欧美久久精品一级c片| 成全视频全集| 51精品在线观看| 亚洲天堂精品视频| 亚洲性视频大全| 日本桃色视频| 日本亚洲欧美成人| 亚洲猫色日本管| 蜜臀av免费一区二区三区| 香艳视频网站| 国产精品久久久久久亚洲调教| 亚洲精品视频免费看| 蜜桃一区二区三区| 超碰在线中文| 国产精品第三页| 欧美日韩亚洲成人| 欧美日韩亚洲国产精品| 久久精品蜜桃| 激情五月综合色婷婷一区二区| 欧美日韩国产一级二级| 日欧美一区二区| 久久青青视频| 黄色免费视频大全| 97视频免费观看| 亚洲国产一区视频| 国内精品嫩模av私拍在线观看| avtt亚洲| 亚洲国产日韩欧美| 在线视频国产日韩| 中文字幕精品三区| 欧洲毛片在线视频免费观看| 欧美美女搞黄| 欧美精品123| 亚洲毛片在线免费观看| av亚洲精华国产精华| 日韩极品在线| 极品美乳网红视频免费在线观看| 乱一区二区三区在线播放| 精品偷拍各种wc美女嘘嘘| 91色综合久久久久婷婷| 九一国产精品| 先锋成人av| 自拍日韩亚洲一区在线| 日韩av免费一区| 欧美日韩成人综合| 成人一区二区视频| 国精一区二区| 国产丝袜在线播放| 大香煮伊手机一区| 国产精品色午夜在线观看| 欧美一区二区三区四区视频| 丁香亚洲综合激情啪啪综合| 久草在线成人| 日本h片在线观看| 老司机午夜av| 国产不卡一区二区在线观看| 亚洲欧美日韩久久久久久 | 在线播放日本| 免费网站在线观看视频 | 久久五月精品中文字幕| 国产成人无码av在线播放dvd| 国产在线视频不卡| 亚洲日本中文字幕免费在线不卡| 怡红院av一区二区三区| 老司机精品视频一区二区三区| 国产一区在线电影| 青春草免费在线视频| xxxx69视频| 91免费视频黄| 国产精品亚洲自拍| 中文字幕日韩免费视频| 在线观看一区二区视频| 91麻豆精品秘密| 国产亚洲精品v| 欧美变态挠脚心| 日本三级一区| 成人在线免费电影| 91插插插插插插插插| 青青草成人网| 国产精品久久久久久久久借妻| 日韩精品高清在线| 色综合天天综合在线视频| 国产亚洲欧美色| 免费高清成人在线| **女人18毛片一区二区| 榴莲视频成人app| 麻豆免费版在线观看| 国产在线观看免费网站| 另类图片亚洲色图| www.xxx麻豆| 噜噜噜噜噜久久久久久91| 国产精品免费观看在线| 久久久精品国产网站| 亚洲高清在线观看| 在线观看中文字幕不卡| 亚洲一二三区不卡| 中文字幕欧美日韩一区| 99久久99久久精品国产片果冻| 日本aⅴ亚洲精品中文乱码| 欧美片第1页综合| 成人三级视频| 国产精品三p一区二区| 成人午夜毛片| 偷拍自拍在线看| 男男gaygays亚洲| 超碰国产在线| 校园春色欧美| 二区三区中文字幕| 丰满少妇在线观看| 精品人妻少妇一区二区| 中文字幕一区二区三区四区五区人| 国产欧美一区二区三区不卡高清| 国产精品久久不能| 26uuu亚洲伊人春色| 欧美精品久久久久久久久| 久久精品亚洲国产| 中文字幕国产精品| 亚洲热线99精品视频| 日韩av在线免费观看| 精品少妇一区二区三区免费观看 | 精品综合久久久久久8888| 亚洲欧洲另类| 尹人成人综合网| 欧美日本一区二区视频在线观看 | 国产精品一二三区视频| 欧美日韩第一区日日骚| 精品福利视频导航| 亚洲一区视频在线观看视频| 国产高清日韩| 五月天婷婷综合| 日本道色综合久久影院| 色美美综合视频| 欧美日韩精品在线| 黑人与娇小精品av专区| 欧洲激情一区二区| 7777精品伊人久久久大香线蕉的 |