服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|

服务器之家 - 服务器系统 - Linux - 十个必须了解的Linux系统进程

十个必须了解的Linux系统进程

2021-09-02 22:36掘金honest1y Linux

在Linux系统当中:触发任何一个事件时,系统都会将它定义成为一个进程,所以,进程是Linux程序的唯一的实现方式。下面就为大家普及10个比较常见的Linux系统进程

当我们习惯性的执行ps命令后会看到很多“奇奇怪怪”的进程,而这些进程大部门都是系统的内核进程。很多同学对之了解的甚少,因此今天就为大家整理一篇入门级的系统进程介绍,希望能够帮助大家对操作系统进程的理解。

十个必须了解的Linux系统进程

在日常运维工作中,经常会看到一些奇怪的系统进程占用资源比较高。而且总是会听到业务线同学询问“xxx这个是啥进程啊?咋开启了这么多?”

而这些系统级的内核进程都是会用中括号括起来的,它们会执行一些系统的辅助功能(如将缓存写入磁盘),无括号的进程都是用户们执行的进程(如PHP、Nginx等)。

如下图所示:

十个必须了解的Linux系统进程

下面就为大家普及10个比较常见的Linux系统进程:

kswapd0

系统每过一定时间就会唤醒kswapd,看看内存是否紧张,如果不紧张,则睡眠,在kswapd中,有2个阀值,pages_hige和pages_low,当空闲内存页的数量低于pages_low的时候,kswapd进程就会扫描内存并且每次释放出32个free pages,直到free page的数量到达pages_high。

kjournald

  • journal:记录所有文件系统上的元数据改变,最慢的一种模式。
  • ordered:默认使用的模式,只记录文件系统改变的元数据,并在改变之前记录日志。
  • writeback:最快的一种模式,同样只记录修改过的元数据,依赖标准文件系统写进程将数据写到硬盘

pdflush

pdflush用于将内存中的内容和文件系统进行同步。

比如说:当一个文件在内存中进行修改,pdflush负责将它写回硬盘。每当内存中的垃圾页(dirty page)超过10%的时候,pdflush就会将这些页面备份回硬盘。这个比率是可调节的,通过/etc/sysctl.conf中的 vm.dirty_background_ratio项默认值为10也可以。

kthreadd

这种内核线程只有一个,它的作用是管理调度其它的内核线程。

它在内核初始化的时候被创建,会循环运行一个叫做kthreadd的函数,该函数的作用是运行kthread_create_list全局链表中维护的kthread。可以调用kthread_create创建一个kthread,它会被加入到kthread_create_list链表中,同时kthread_create会weak up kthreadd_task。kthreadd在执行kthread会调用老的接口——kernel_thread运行一个名叫“kthread”的内核线程去运行创建的kthread,被执行过的kthread会从kthread_create_list链表中删除,并且kthreadd会不断调用scheduler 让出CPU。这个线程不能关闭。

migration

这种内核线程共有32个,从migration/0到migration/31,每个处理器核对应一个migration内核线程,主要作用是作为相应CPU核的迁移进程,用来执行进程迁移操作,内核中的函数是migration_thread()。

属于2.6内核的负载平衡系统,该进程在系统启动时自动加载(每个CPU一个),并将自己设为SCHED_FIFO的实时进程,然后检查runqueue::migration_queue中是否有请求等待处理,如果没有,就在TASK_INTERRUPTIBLE中休眠,直至被唤醒后再次检查。migration_thread() 仅仅是一个CPU绑定以及CPU电源管理等功能的一个接口。这个线程是调度系统的重要组成部分。

watchdog

这种内核线程共有32个,从watchdog/0到watchdog/31,每个处理器核对应一个watchdog内核线程,watchdog用于监视系统的运行,在系统出现故障时自动重新启动系统,包括一个内核watchdog module和一个用户空间的watchdog程序。

在Linux内核下,watchdog的基本工作原理是:当watchdog启动后(即/dev/watchdog设备被打开后),如果在某一设定的时间间隔(1分钟)内/dev/watchdog没有被执行写操作, 硬件watchdog电路或软件定时器就会重新启动系统,每次写操作会导致重新设定定时器。

events

这种内核线程共有32个,从events/0到events/31,每个处理器核对应一个 events内核线程。用来处理内核事件很多软硬件事件(比如断电,文件变更)被转换为events,并分发给对相应事件感兴趣的线程进行响应。

kblockd

这种内核线程共有32个,从kblockd/0到kblockd/31,每个处理器核对应一个kblockd内核线程。用于管理系统的块设备,它会周期地激活系统内的块设备驱动。如果拥有块设备,那么这些线程就不能被去掉。

aio

这种内核线程共有32个,从aio/0到aio/31,每个处理器核对应一个aio内核线程,代替用户进程管理I/O,用以支持用户态的AIO(异步I/O),不应该被关闭。

rpciod

这种内核线程共有32个,从rpciod/0到rpciod/31,每个处理器核对应一个rpciod内核线程,主要作用是作为远过程调用服务的守护进程,用于从客户端启动I/O服务,通常启动NFS服务时要用到它。

总结

进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的类型存在。在Linux系统当中:触发任何一个事件时,系统都会将它定义成为一个进程,所以,进程是Linux程序的唯一的实现方式。

原文地址:https://juejin.cn/post/6998328836169400351

延伸 · 阅读

精彩推荐
  • Linux浅谈Linux Shell的管道与重定向

    浅谈Linux Shell的管道与重定向

    对shell有一定了解的人都知道,管道和重定向是 Linux 中非常实用的 IPC 机制。...

    运维派3302020-12-09
  • LinuxLinux格式化硬盘的方法和步骤

    Linux格式化硬盘的方法和步骤

    Linux 是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。我们在使用硬盘的时候,出现了...

    系统之家5612020-06-27
  • LinuxLinux操作系统下设置基本网络参数四种方法

    Linux操作系统下设置基本网络参数四种方法

    在Red Hat Linux 6.0系统中,自带有Netscape浏览器,让Linux通过以太网卡访问Internet时,必须对Linux系统进行相应的配置,诸如主机、域名、网关、路由器等。在实...

    Linux教程网7842019-12-01
  • LinuxLinux实现文件内容去重及求交并差集

    Linux实现文件内容去重及求交并差集

    这篇文章主要介绍了Linux实现文件内容去重及求交并差集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    楔子4572020-08-04
  • LinuxLinux VPS查看Inodes数目的方法

    Linux VPS查看Inodes数目的方法

    VPS上的 Inodes 数目表示此vps最大许可可存在的文件数目。 ...

    Linux教程网3732020-03-21
  • LinuxLinux安全攻略之SSH服务连接时的常见问题与解答

    Linux安全攻略之SSH服务连接时的常见问题与解答

    SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有...

    Linux教程网2862019-12-26
  • LinuxLinux下取得UUID的方法分享

    Linux下取得UUID的方法分享

    GUID (global unique identifier) 是微软对UUID的叫法.UUID( Universal Unique Identifier) ...

    Linux教程网8132020-01-05
  • Linux用Monit监测Linux 服务器

    用Monit监测Linux 服务器

    Monit 是一个用来监测系统状态的工具,不但可以用来监视进程、服务、文件、目录、文件系统,还可以在服务 down 掉的时候自动重启服务或者当某个进程占...

    Linux教程网3882020-03-20