工作重心转向 Linux 内核及 mainline 中的虚拟化技术,所以会持续关注内核的发展 :-D
Linux 3.14 于3月30日发布,澳洲时间是3月份的最后一天,囧
3.14 中的显著特性:
SCHED_FIFO
先进先出和 SCHED_RR
round-robin 循环的基础上添加了 SCHED_DEADLINE 以便于更有效地处理 real-time 任务。有别于传统进程优先级的概念 deadline 提供了 {runtime,period,deadline}
三个参数。SCHED_DEADLINE
task is guaranteed to receive “runtime” microseconds of execution time every “period” microseconds, and these “runtime” seconds are available within “deadline” microseconds from the beginning of the period. 详细的文档见 Documentation/scheduler/sched-deadline.txtzram
内存压缩机制已稳定zram
和 3.11 中加入的 zswap
是两码事。zram 把内存作为块设备来用,所有写入的数据都会被压缩。若 zram 块设备被当作 swap 使用,相当于系统压缩要 swap out 到磁盘的内存。可以作小内存系统的内存压缩机制,以提高系统的响应速度。已使用 zram 的有 Android 4.4, CyanogenMod, Chrome OS 等。/sys/fs/btrfs
发布文件系统内部实现信息(部分可直接改)lzo
或 zlib
{barrier,datacow,datasum,noautodefrag,nodiscard,noenospc_debug,noflushoncommit,noinode_cache,treelog}
/sys/fs/btrfs
下发布内部实现信息,其中部分是可以直接 on the fly 修改的。write()
/ sendmsg()
系统调用时 Linux 内核会尽可能尝试合并这些小碎片来减少发出包的数量。参数 /proc/sys/net/net/ipv4/tcp_autocorking
用来控制这一特性,默认开启。/proc/meminfo
提供了 MemAvailable – 并非简单将 free 和 cached 相加,这样的计算方法是错误的,因为 Cached 中包括没法释放的内存(例如 tmpfs ramfs 共享的内存区段等),且不包括 reclaimable slab memory 。现在的估算可为新应用使用的物理内存的方法是 MemFree + Active(file) + Inactive(file) + SReclaimable + /proc/zoneinfo
中的 low watermarks/proc/sys/kernel/numa_balancing
用来在运行时开关 numa memory balancing 特性/sys/class/net//slave
目录,添加了 Ip_internal 参数来调整 bonding 驱动向 slaves 发送 learning packets 的间隔(默认为1秒)注:看了一个星期才把绝大部分新变动看完,大部分都是看了相关的 git commits 后才明白是什么东西。其实也算是不可多得的学习机会,希望自己能坚持下去 :-D