爱极客专注分享-好玩的docker应用-源码分享

运维人员必须知道的10个系统进程

前言

在日常运行和维护工作中,我们经常看到一些奇怪的系统过程占用了相对较高的资源,但我们不敢随意使用Kill

这些系统级的核心过程将用中括号包括,它们将执行一些系统的辅助功能(如将缓存写入磁盘);

无括号的过程由用户执行(如java)、nginx等)

如下图所示:

运维人员必须知道的10个系统进程

kswapd0

系统定期唤醒kswapd,检查内存是否紧张,如果不紧张,则睡眠,kswapd中有两个阀值:pages_hige,pages_low,当空闲内存页数低于pages_low时,kswapd过程每次扫描内存并释放32个freee pages,直到free page的数量达到pages_high标准


kjournald

kjournald有三种模式,即journal,ordered,writeback

journal:最慢的模式是记录所有文件系统中元数据的变化

ordered:默认使用的模式只记录文件系统变更的元数据,并在变更前记录日志

writeback :最快的模式是只记录修改后的元数据,并依靠标准文件系统的编写过程将数据写入硬盘


pdflush

主要用于同步内存中的内容和文件系统。

例如,当文件在内存中修改时,pdflush负责将其写回硬盘。每当内存中的垃圾页面(dirty page)当超过10%时,pdflush将这些页面备份回硬盘。

这个比率通过/通过/通过/etc/sysctl.conf中的 vm.dirty_background_ratio项默认值10


kthreadd

内核线程是在内核初始化时创建的,其作用是管理和调度其他内核线程。

它将循环运行一个叫做kthread的函数,其功能是运行kthread_create_list全局链表中维护的kthread,然后可以调用kthread_create创建kthread,将添加到kthread_create_list链表,kthread_create会议weak up kthreadd_task

注:此线程无法关闭!!!


migration

migration/0-migration/31共有32个内核现场,每个处理器对应一个migration内核线程,主要用作相应CPU核的迁移过程。内核中的函数是migration_thread();该过程在系统启动时自动加载(每个过程) cpu 一个),并将自己设定为 SCHED_FIFO 实时过程,然后检查 runqueue::migration_queue 如果没有,是否有要求等待处理? TASK_INTERRUPTIBLE 中度休眠,直到被唤醒后再次检查。

migration_thread() 仅仅是一个 CPU 绑定以及 CPU 电源管理等功能的接口。该线程是调度系统的重要组成部分。

watchdog

watchdog/0-watchdog/31共有32个内核线程, 每个处理器的核心对应一个watchdogo 内核线程主要用于监控系统的运行,并在系统出现故障时自动重新启动系统,包括内核 watchdog module 还有用户空间 watchdog 程序。其基本工作原理是:watchdog启动后(即/dev/watchdog设备打开后),如果在一定时间间隔(1分钟)内/dev/watchdog未执行写作操作, 硬件watchdog电路或软件定时器将重新启动系统,每次写作都会导致重新设置定时器。


events

events/0-events/31, 总共有32个内核线程,每个处理器对应一个 events内核线程。很多软硬件事件(如断电、文件变更)主要用于处理内核事件,转换为events,并分发给对相应事件感兴趣的线程进行响应。


kblockd

kblockd/0-kblockd/31, 内核线程共32个 ,每个处理器对应一个处理器核 kblockd 用于管理系统的块设备的内核线程将定期激活系统中的块设备


aio

aio/0-aio/31, , 总共有32个内核线程,每个处理器对应一个 aio 内核线程, I///替代用户过程管理O,AIO用于支持用户态(异步I/O)

注:此线程不应关闭。


rpciod

rpciod/0-rpciod/31, 共有32个内核线程, 每个处理器对应一个rpciod内核线程,主要用作远程调用服务(如NFS)的保护过程,用于从客户端启动I/O服务

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容