我对Linux内核3.0及其之后进行了一些研究
由于篇幅较长,为了提炼要点,省略了GPU和虚拟相关内容。
由于NW变得很长,所以要进行分割。
I/Oが長くなったので分割
http://qiita.com/bringer1092/items/4a62ec6ab62b896ab611
硬件支持
4.6 超级速度加倍的USB 3.1 (10 Gbps)支持
支持USB 3.1
支持超高速加速(10 Gbps)
4.12 支持 USB Type-C
在调查Type-C时,发现它支持USB PD(最高100W功率)标准,并支持视频输出。
安全相关事项 ɡ deshi ɡ)
尽管人们对要载入内容的细节存在较大差异。
3.11 引入 O_TMPFILE 的 open(2) 标志,以降低临时文件漏洞的风险。
安全な一時ファイルの実装
O_TMPFILEフラグでオープンされたファイルは作成されますが、ファイルシステムには表示されません。そして、クローズされるとすぐにそれらは削除される
なお、MySQLでは作成した瞬間にオープン、削除と行い削除されているので他からは見られないけど先にオープンしたMySQLだけが参照できるというのを実装している
3.19 支持英特尔内存保护扩展
英特尔支持内存保护技术MPX。
4.0 实时修补
即时内核补丁
无需重新启动即可应用于内核的补丁
是最近最大的收费改进
是的,除非您自己集成该结构,否则即使是Ubuntu也只能免费使用3台。RHEL是付费的。
4.1 支持Ext4加密
Ext4ファイルシステムで暗号化サポート
オプションではなく直接実装し既存のdm-cryptやecryptfsよりも高速に
速度とファイル、ディレクトリ単位で出来るのが特徴
やり方はここにある
http://askubuntu.com/questions/643577/how-to-create-ext4-encrypted-partition-on-ubuntu-15-04-with-new-4-1-kernel
4.2 安全模块的叠加
在Linux内核中,只能指定一个安全模块,但支持多个(堆栈)。
4.9 内核对保护密钥系统调用的支持
提供比使用保护密钥更完善的API。
4.12 动态内核修补的进展
我們通過即時更新,確保了任務的一致性。
4月14日 增加对AMD安全内存加密的支持
支持AMD memory encryption SME
4月15日的Meltdown/Spectre
主要引发内存性能下降的CPU漏洞应对措施
仅限于从本地执行,需要在使用浏览器的PC上进行设置
可以通过内核启动选项pti=off、spectre_v2=off来禁用
已添加/sys/devices/system/cpu/vulnerabilities/目录,显示正在使用的CPU和影响缓解措施的漏洞。
内存相关
3.0 清理缓存
像Memcache一样的东西。有关说明请参考下面链接:
http://gihyo.jp/dev/serial/01/linuxcon_basic/0006?page=2
类似Memcache的东西。有关说明请查看下方链接:
http://gihyo.jp/dev/serial/01/linuxcon_basic/0006?page=2
类似于Memcache的东西。请参阅下面链接获取相关说明:
http://gihyo.jp/dev/serial/01/linuxcon_basic/0006?page=2
3.1 页分配器:修复在NUMA机器上复制大量数据时出现的显著停顿问题。
防止在NUMA架构上进行大量数据拷贝时的重要停顿。
3.5 前置交换支持。前置交换之所以被这样命名是因为它可以被看作交换设备的”备份”存储的相反部分。
Frontswapのサポート。
vmswapness=0の挙動が変わったためこれ以降のバージョンではvmswapness=1が推奨されるようになった
CentOS6.4にも入ったため有名に
3.6 Allow swap readahead IOPS to be merged, it improves throughput and at the same time lowers CPU consumption
スワップ先読みIOPSを許可し、スループットを向上させ、同時にCPU消費を削減
3.11 Kswapd and page reclaim behaviour has been screwy in one way or the other for a long time
避免 kswapd 使用 100% 的 CPU 的问题。
3.12 更好的内存处理
OOM Killer的行为变更
3.12 swap: change block allocation algorithm for SSD
只有在SSD的情况下改善了交换中的开销。
3.13 Improved performance in NUMA systems
NUMAの改良
今のx86のアーキテクチャだとCPU毎にメモリがぶら下がるが
複数物理CPUがある場合異なるCPUのメモリにアクセスする場合のオーバーヘッドが無視できない
そのためメモリのデータが自分のCPUのメモリにあるように配置できるようにパラメーターを追加
参数的详细说明请参考以下链接:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/diff/Documentation/sysctl/kernel.txt?id=10fc05d0e551146ad6feb0ab8902d28a2d3c5624
kernel.numa_balancing_scan_delay_ms = 1000
kernel.numa_balancing_scan_period_max_ms = 60000
kernel.numa_balancing_scan_period_min_ms = 1000
kernel.numa_balancing_scan_size_mb = 256
kernel.numa_balancing_settle_count = 4
こんな感じで設定
CPUをたくさん扱えるミドルウェアでは効果がありそう、
だがメモリが他コアのメモリまで必要とするほど使うものでは意味がないかな
kernel.numa_balancing_settle_countは3.14で削除された模様
3.14 添加 overcommit_kbytes 系统控制变量。
实现将内存单位从百分比变为TB单位,并细分至比overcommit_kbytes更详细的级别。
3.15 改进了工作集大小检测
将非活动内存的行为进行更改。
跟踪内存从变为非活动状态后经过的时间,
以便实现效率化改进,可以预期会有一定效果。
3.15 NUMA: make smarter decisions on NUMA migrations in order to maximize performance of workloads that do not fit in one NUMA node
1つのNUMAに収まらないワークロードのパフォーマンスを最大化
NUMAを無効にしたほうが早いかな
4.0 cgroups: Per memory cgroup slab shrinkers
只有对cgroup的内存管理进行新设计和创建一个新接口才会产生效果。
4.3 压缩清理和性能优化
压缩清理和优化
4.5提案:共享内存的计算存在几个缺陷,需要改进。
限制每个用户在管道中分配的页面数量为4.5。
添加sysct参数限制没有管理员权限的用户能够分配给管道的最大页面数量。
管道用户页面软限制
管道用户页面硬限制
4.6 提高内存不足任务终止器的可靠性
OOMキラーの信頼性向上
アルゴリムの改善。OOMキラー対象のメモリを先に開放し再利用。
4.7 支持更大的缓存工作集,并保护写入操作。
支持大型缓存工作集,并保护写入操作
由于特定的PostgreSQL工作负载存在问题,需要对内存管理代码进行更改。
改进OOM检测以提高其可靠性。
重新调整以实现更可靠的OOM检测。
4.7平板分配器(请勿与默认SLUB分配器混淆):减少分配路径上的锁争用,改进并发分配。
サイズが128バイトを超えるオブジェクトクラスの場合、パフォーマンスが50%以上向上
4.8 Support for using Transparent Huge Pages in the page cache
ページキャッシュに透明な巨大ページを使用するためのサポート
Transparent huge pagesによって2MBのページが扱えるが
ページキャッシュがシステム上のメモリーの最大のユーザであることが
多いのにサポートされていなかった。
tmpfs/shmemのページキャッシュ内でのサポートが追加
mountオプションhuge=でtmpfsのhugepage割り当てポリシーを制御できる
4.11 Scalable swapping for SSDs
将交换处理扩展以优化SSD。
4.13 Improved block layer and background writes error handling
バッググラウンド書き込みプロセスが失敗しても初回しかエラーが出さなかったが
エラーを新しい処理にしfsyncで信頼性の高いレポートエラーが出るようになった
4.14 内存上限更大
将x64的最大记忆从64TB增加到128PiB。
4.15 Speed up page cache truncation
ページキャッシュのtruncationを高速化
4.15 Make able to disable NUMA stats for improved performance
/proc/sys/vm/numa_statに0を設定することで、パフォーマンス向上のためにNUMA統計を無効にできる
中央处理器
3.2 Process bandwidth(各プロセスにおけるCPUリソースの利用量を制限)
我原本以为cgroup已经具备了这个功能。
Here’s the Chinese paraphrase:
我以为cgroup已经拥有这个功能了。
自动检测x86 CPU的3.4版本
CPUにより色々な機能が追加されているがCRC32強化などの機能が使われていない。
正しいCPU型番を識別子して機能を全部使うための判定
3.7 英特尔“监督者模式访问预防”支持
英特尔SMAP支持
推荐的英特尔文档:英特尔®架构指令集扩展编程参考
3.15 Intel AVX-512 vector instructions support
AVX-512のサポート
3.16 控制组允许创建任意进程组,并应用CPU。
控制组的层次化 zǔ de huà)
3.18 增加对gcc 5的支持
支持gcc5
3.19 AMD GPU设备的HSA驱动程序
支持AMD HSA架构
4.2 待处理自旋锁成为默认的自旋锁实现方式
在x86架构的CubeS的Spin Lock上
在拥有2个以上NUMA的机器上,对调度器进行增强
4.6 dma-buf: new ioctl to manage cache coherency between CPU and GPU
管理CPU和GPU之间的缓存一致性的新的ioctl支持。
4月10日,对于英特尔缓存分配技术的支持
英特尔提供了一种功能,可以设置L2/3 CPU缓存的策略。例如,可以为实时任务分配独立的缓存空间。
4.16 epoll:大幅提高嵌套epoll性能
巢状epoll的性能大幅提升。
4月15日,新的架构:RISC-V
未来可能增加采用支持RISC-V的CPU。
压缩
4.11 更新LZ4压缩模块
通过更新LZ4并添加LZ4 fast xx设置,可以实现更高速的压缩。由于fast设置的原因,压缩率会有所下降。