linux的几个进程的作用

2023-10-27

 author:skate
time:2011/08/10

 


linux的几个进程的作用

 

1. kswapd0

 

Linux uses kswapd for virtual memory management such that pages that have been recently accessed
 are kept in memory and less active pages are paged out to disk.
(what is a page?)…Linux uses manages memory in units called pages.
So,the kswapd process regularly decreases the ages of unreferenced pages…and at the end they are
 paged out(moved out) to disk

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

 

linux在负载比较大(内存很紧张)的时候一般会看到这样的两个进程kswapd0和kswapd1,如果这个进程占用
系统资源很多,尤其是在rac环境会引起系统的宕机,如果这个进程占用资源非常高,那就要考虑优化系统,或
添加硬件资源。


2.kjournald

这个是EXT3文件系统的日志进程,具有3种模式:


journal:
 logs all filesystem data and metadata changes. The slowest of the three ext3
 journaling modes, this journaling mode minimizes the chance of losing the changes
 you have made to any file in an ext3 filesystem.(记录所有文件系统上的元数据改变,最慢的一种模式,)

ordered:
 only logs changes to filesystem metadata, but flushes file data updates to disk
 before making changes to associated filesystem metadata. This is the default ext3
 journaling mode.(默认使用的模式,只记录文件系统改变的元数据,并在改变之前记录日志)

writeback:
 only logs changes to filesystem metadata but relies on the standard filesystem
 write process to write file data changes to disk. This is the fastest ext3
 journaling mode.(最快的一种模式,同样只记录修改过的元数据,依赖标准文件系统写进程将数据写到硬盘)

修改模式EXT3的工作模式,例如

vi /etc/fstab
/dev/hda5      /opt            ext3       data=writeback        1 0

 

3.pdflush

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

 

也可以如下查询:
cat /proc/sys/vm/dirty_background_ratio 查看当前的值

 


4. ACPI

是Advanced Configuration and Power Interface缩写,acpid中的d则代表daemon ,Acpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,
负责将kernel中的电源管理事件转发给应用程序。 支持的通用操作有:“电源开关“,
”电池监视“,”笔记本 Lid 开关“,“笔记本显示屏亮度“,“休眠”, “挂机”,等等。


acpid与内核的通信方式:acpid用poll函数挂在/proc/acpi/event文件上。内核在
drivers/acpi/event.c中实现了该文件的接口,一旦总线事件列表(acpi_bus_event_list)
上有电源管理事件发生,内核就会唤醒挂在 /proc/acpi/event上的acpid,acpid再
从/proc/acpi/event中读取相应的事件。

 

acpid与应用程序的通信方式有两种,其一是通过本地socket,其文件名为/var/run/acpid.socket,
应用程序只要连接到这个socket上,不用发送任何命令就可以接收到acpid转发的电源管理事件。

其二是通过配置文件。在acpid收到来自内核的电源管理事件时,根据配置文件中的规则执行指定的命令。
配置文件在/etc/acpi/events/目录下,下面是一个示例:

 

[root@rac2 ~]# more /etc/acpi/events/power.conf
# ACPID config to power down machine if powerbutton is pressed, but only if
# no gnome-power-manager is running

event=button/power.*
action=/bin/ps awwux | /bin/grep gnome-power-manager | /bin/grep -qv grep || /sbin/shutdown -h now
[root@etl-dbrac2 ~]#

 

在对应的log文件里有记录:

[root@rac2 ~]# tail -20 /var/log/acpid  |more
[Fri Jul 29 01:28:56 2011] received event "button/power PWRF 00000080 00000001"
[Fri Jul 29 01:28:56 2011] notifying client 6775[68:68]
[Fri Jul 29 01:28:56 2011] notifying client 7739[0:0]
[Fri Jul 29 01:28:56 2011] executing action "/bin/ps awwux | /bin/grep gnome-power-manager | /bin/grep -qv grep || /sbin/shutdown -h
 now"
[Fri Jul 29 01:28:56 2011] BEGIN HANDLER MESSAGES
[Fri Jul 29 01:28:57 2011] END HANDLER MESSAGES
[Fri Jul 29 01:28:57 2011] action exited with status 0
[Fri Jul 29 01:28:57 2011] completed event "button/power PWRF 00000080 00000001"
[Fri Jul 29 01:33:18 2011] starting up
[Fri Jul 29 01:33:18 2011] 1 rule loaded
[Fri Jul 29 01:33:23 2011] client connected from 6789[68:68]
[Fri Jul 29 01:33:23 2011] 1 client rule loaded
[Fri Jul 29 01:33:31 2011] client connected from 7792[0:0]
[Fri Jul 29 01:33:31 2011] 1 client rule loaded
[Sat Aug  6 03:16:37 2011] starting up
[Sat Aug  6 03:16:37 2011] 1 rule loaded
[Sat Aug  6 03:16:45 2011] client connected from 6761[68:68]
[Sat Aug  6 03:16:45 2011] 1 client rule loaded
[Sat Aug  6 03:16:54 2011] client connected from 7723[0:0]
[Sat Aug  6 03:16:54 2011] 1 client rule loaded

 

5.gnome-power-manager

 

是一个直接面对最终用户的应用程序,也是一个中间层。作为中间层,acpid对普通应用程序来说还是过于底层,
但gnome-power-manager为其它应用程序提供了更高层的服务接口。

 


6. NetworkManager

是一个自动切换网络连接的后台进程。很多笔记本用户都需要启用该功能,它让你能够在无线网络和有线网络之间切换。大多数台式机用户应该关闭该服务。一些 DHCP 用户可能需要开启它。

 

 

 

----------end----------

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux的几个进程的作用 的相关文章

  • 代码::块 - 警告:GDB:无法设置控制终端:不允许操作

    我已经通过官方存储库在 Ubuntu 14 04 中安装了 Code Blocks 13 12 当我编译时 一切正常 但是当我调试时 shell 中会显示以下消息 警告 GDB 无法设置控制终端 操作不正确 允许的 程序执行到断点 但当我执
  • 操作系统崩溃的常见原因[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解 操作系统崩溃 不限于Windows崩溃 最常见的技术原因 从操作系统编程的角度 有哪些 我正在寻找一个不像 打开太多应用
  • sed 仅最后一个匹配模式

    我想sed仅文本文件的最后一个匹配模式 输入文件 boy boy girl boy 输出文件 boy boy girl boys 一种方法是反转文件 仅替换第一个匹配项 然后再次反转 tac
  • Linux下的C#,Process.Start()异常“没有这样的文件或目录”

    我在使用 Process 类调用程序来启动程序时遇到问题 可执行文件的层次结构位于 bin 目录下 而当前工作目录需要位于 lib 目录下 project bin a out this is what I need to call lib
  • 即使 makefile 和源代码存在,为什么“Build Project”在 Eclipse Helios CDT 中显示为灰色?

    我无法构建我的项目 我在 Eclipse Helios 中创建了一个新的 CDT 项目 并告诉它使用现有的源代码和 makefile 这两者都正确显示在 Package 和 Project 视图中 然而 项目 菜单中的 构建全部 和 构建项
  • Bash 中 $() 和 () 之间的区别

    当我打字时ls l echo file 支架的输出 这只是简单的回显 被获取并传递到外部ls l命令 就等于简单的ls l file 当我打字时ls l echo file 我们有错误 因为不能嵌套 内部外部命令 有人可以帮助我理解之间的区
  • 是否可以找到哪个用户位于 localhost TCP 连接的另一端?

    这是一个编程问题 但它是 Linux Unix 特定的 如果我从本地主机获得 TCP 连接 是否有一种简单的方法可以告诉哪个用户在 C 程序内建立了连接而无需 shell 我知道这对于 Unix 域套接字来说并不太难 我已经知道远程 IP
  • 跟踪 pthread 调度

    我想做的是创建某种图表 详细说明 Linux 中 两个 线程的执行情况 我不需要查看线程的作用 只需查看它们何时被安排以及持续多长时间 基本上是一条时间线 在过去的几个小时里 我一直在互联网上搜索跟踪 pthread 调度的方法 不幸的是
  • 我在哪里可以学习如何使 C++ 程序与操作系统 (Linux) 交互

    我是一个 C 初学者 我想创建与操作系统交互的小程序 使用 Kubuntu Linux 到目前为止 我还没有找到任何教程或手册来让 C 与操作系统交互 在 PHP 中 我可以使用命令 exec 或反引号运算符来启动通常在控制台中执行的命令
  • Linux TCP服务器:在接受连接之前读取客户端的IP地址

    Related C Winsock API如何在接受连接之前获取连接客户端IP https stackoverflow com questions 716209 c winsock api how to get connecting cli
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 静态链接共享对象?或者损坏的文件?

    我有一个从专有来源获得的库 我正在尝试链接它 但出现以下错误 libxxx so 文件无法识别 文件格式无法识别 Collect2 ld 返回 1 退出状态 确实 ldd libxxx so statically linked 这究竟意味着
  • 目标操作 uicontrol 事件

    我一定在这里遗漏了一些明显的东西 但是 UIControl有一个方法 void addTarget id target action SEL action forControlEvents UIControlEvents controlEv
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • 进程名称长度的最大允许限制是多少?

    进程名称允许的最大长度是多少 我正在读取进程名称 proc pid stat文件 我想知道我需要的最大缓冲区 我很确定有一个可配置的限制 但就是找不到它在哪里 根据man 2 prctl http man7 org linux man pa

随机推荐

  • 区块链-Linux下USDT测试节点搭建

    本文转载自https lhalcyon com blockchain usdt node Tether Limited 公司基于 Omni Layer 这层协议 Omni Layer protocol 发行tetherUSD Omni La
  • 【无线传感器】使用 MATLAB和 XBee连续监控温度传感器无线网络研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及数据 1 概述 在本文中 MATLAB 用于通过与使用
  • MSSQL内置数据库角色及访问权限设置

    MSSQL数据库内置数据库角色 在MSSQL数据库中 有一些内置的数据库角色 这些角色具有特定的权限和功能 以下是常见的内置角色 sysadmin sysadmin是服务器级别的角色 拥有最高权限 sysadmin可以执行服务器上的任何操作
  • 搭建IFS虚拟机

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 开发任务 羿鹏项目ats与iscs通信协议中新增了ats向iscs发送屏蔽门状态信
  • 五分钟学Java:为什么会发生ArrayIndexOutOfBoundsException?

    在逛 Stack Overflow 的时候 发现了一些访问量像昆仑山一样高的问题 比如说这个 为什么会发生 ArrayIndexOutOfBoundsException 这样看似简单到不值得一问的问题 访问量足足有 69万 这不得了啊 说明
  • 多对一查询方法

    1 sql文件 CREATE TABLE teacher id INT 10 NOT NULL name VARCHAR 30 DEFAULT NULL PRIMARY KEY id ENGINE INNODB DEFAULT CHARSE
  • git push 失败与解决方法汇总

    1 http链接失败 现象 Permission denied publickey fatal the remote hang up unexpectly 原因 http链接失败 解决方法 1 生成ssh密钥 2 然后将公钥拷贝到gitup
  • VNDK extensions

    Android P要求开VNDK 如果HAL需要链接android原生库 原生库的Android bp必须包含下面内容 如果没有对原生库做任何修改 编译不会出现问题 如果对原生库做了修改 这个时候编译会出错 会提示不允许链接该库 这个时候就
  • sklearn.model_selection.train_test_split

    数据集划分 sklearn model selection train test split arrays options 主要参数说明 arrays 可以是列表 numpy数组 scipy稀疏矩阵或pandas的数据框 test size
  • KeyError: ‘Unable to open object (free block size is zero?)‘解决方法

    在复刻Mask R CNN训练自己的数据集时遇到这个问题 查了很多资料没有找到解决方法 历尽千辛万苦终于找到蛛丝马迹 分享一下帮助遇到相同问题的人少走些弯路 问题原因 一开始为了学习如何复刻下载了别人的代码进行学习 自己复刻时直接使用了旧的
  • 从零搭建树莓派远程监控小车,udp视频传输,qt上位机

    目录 前言 一 材料准备 二 连线方式 三 软件编程 软件编程主要有一下几个方面 1 树莓派视频传输 2 esp8266代码 3 上位机编程 四 总结 前言 最近刚准备完期末机器人驱动的课设 本来是做远程监控无人机的 但是第一次玩无刷电机
  • 吹捧不是区块链的全部,冷静才是正道!

    众所周知 尽管区块链能给我们带来完全不同的想象空间 但是依然掩盖不了它是一个新生的底层技术的现实 如果在一个技术的新生阶段就去吹捧它如何之好 显然是不对的 因为对于新生技术来讲 它的最初阶段最应该具备的 姿势 就是不断丰富和完善自己 为自己
  • 星空时钟c++

    include
  • [Python图像处理] 基于离散余弦变换的安全扩频数字水印

    基于离散余弦变换的安全扩频数字水印 数字水印 基于离散余弦变换的安全扩频数字水印 实现安全扩频数字水印 相关链接 数字水印 数字水印是可见的或不可见的标识码 这种标识码被永久嵌入图像中 并且即使在解码过后后仍存在于图像中 为了保证有效性 水
  • ubuntu20.04下安装pcl

    pcl点云数据库 用来进行3D信息的获取与处理 和opencv相比较 opencv是用来处理二维信息 他是学术界与工业界针对点云最全的库 且网络上相关的资料很多 以下是pcl的安装步骤以及遇到的问题 提前说明 本人用的是ubuntu20 0
  • 一个干净优雅的 Element UI Admin 模板

    Element UI Admin 一个干净优雅的Element UI Admin模板 一个大型单页应用离不开合理的项目结构和一些简单的封装github com xusenlin el Start 克隆或者下载这个仓库 进入项目目录安装依赖
  • 记录好项目D11

    记录好项目 你好呀 这里是我专门记录一下从某些地方收集起来的项目 对项目修改 进行添砖加瓦 变成自己的闪亮项目 修修补补也可以成为毕设哦 本次的项目是个宠物交易 领养系统 一 系统介绍 包括管理员 普通用户两种角色 外加游客 未登录情况 权
  • RT-Thread Studio学习 使用at_device软件包通过ESP8266连接到网络

    本文参考自 https blog csdn net FILLMOREad article details 106233464 ESP8266模块电路图 添加软件包 打开 RT Thread Settings 点击 libc 将其开启 点击添
  • Android Studio中将一个项目转变成library(model)引入到另一个项目中使用

    大家平时在做项目时 会经常应用library作为第三方依赖 那么如果公司中有多个app 其中有部分业务功能逻辑是相似并且可以复用的时候 我们货怎么办呢 简单粗暴的办法就是直接复制过来 但是这样做岂不是复用率不高 以后这部分代码要修改岂不是每
  • linux的几个进程的作用

    author skate time 2011 08 10 linux的几个进程的作用 1 kswapd0 Linux uses kswapd for virtual memory management such that pages tha