首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux进程调度分析

进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TASK_RUNNING状态的进程进行调度(参见《linux进程状态浅析》)。...那么,进程的优先级该如何确定呢?有两种方式:由用户程序指定、由内核的调度程序动态调整。(下面会说到) linux内核将进程分成两个级别:普通进程和实时进程。...而linux在缺页异常的处理代码中试图分配内存时,又可能由于系统内存紧缺而分配失败,导致进程进入睡眠; 2、代码执行过程中硬件产生中断,linux进入中断处理程序而搁置当前进程。...有兴趣的朋友可以参考下面的链接: 《Linux 调度器发展简述》 《鼠眼看Linux调度器》 《鼠眼再看Linux调度器[1]》 《鼠眼再看Linux调度器[2]》 调度程序的效率 “优先级”明确了哪个进程应该被调度执行...每次调度,调度程序需要从树中找出优先级最高的进程。复杂度为O(logN)。 那么,为什么从linux 2.6早期到近期linux 2.6版本,调度程序选择进程时的复杂度反而增加了呢?

2.4K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux内核调度分析进程调度)

    Linux进程调度 发展历史 Linux从2.5版本开始引入一种名为的调度器,后在2.6版本中将公平的的调度概念引入了调度程序,代替之前的调度器,称为算法(完全公平调度算法)。...为了保证交互式应用和桌面系统的性能,一般Linux更倾向于优先调度I/O消耗型进程进程优先级 Linux采用了两种不同的优先级范围。 使用nice值:越大的nice值意味着更低的优先级。...Linux中的抢占时机取决于新的可运行进程消耗了多少处理器使用比, 如果消耗的使用比当前进程小,则立刻投入运行,否则将推迟其运行。...Linux调度算法 调度器类 Linux的调度器是以模块的方式提供的,这样使得不同类型的进程按照自己的需要来选择不同的调度算法。...Linux调度的实现 下面我们来看看CFS是如何实现的,一般我们把它分为4个主要的部分来分析

    14.9K113

    Linux进程内存分析pmap命令

    名称:        pmap - report memory map of a process(查看进程的内存映像信息)pmap命令用于报告进程的内存映射关系,是Linux调试及运维一个很好的工具。...,也就是该进程预先分配的虚拟内存大小,即ps出的vsz writeable/private  表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小       shared 表示进程和其他进程共享的内存大小...查看进程1的设备格式,不显示头尾行 [root@C44 ~]#  pmap -d -q 1 1:   init [5]                     00934000     ...00000   [ stack ] ffffe000       4 ----- 0000000000000000 000:00000   [ anon ] [root@C44 ~]#   查看进程...- ------- ------- ------- ------- total kB    1700       -       -       - [root@C44 ~]#   循环显示进程

    4K10

    Linux进程管理工具Supervisor

    简述 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。...它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。...也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。...stop all 13# 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程 14supervisorctl reload 15# 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启...Shut this program down first before starting supervisord 监控工具 一个很简单的PHP监控工具 参考 unix:///var/run/supervisor.sock

    1K30

    linux查看端口进程信息—lsof工具

    "lsof"——list open files,lsof也是Linux下用于查看打开的文件以及相关联进程信息的工具 ?...这时我们看到了进程PID,我们终止它就行了 kill 20763 再次启动服务,正常运行 每行显示一个打开的文件,各列含义如下: COMMAND:与文件关联进程的名称 PID:进程PID USER:拉起进程的用户...FD:指示进程与文件的关联关系 TYPE:指示文件类型 DEVICE:指示文件所在设备的设备号(major,minor) SIZE/OFF:指示文件的大小或进程对文件操作的偏移量 NODE:文件索引标识...NAME:文件名 FD列值的含义与fuser查询结果中PID后接字符的含义相同,指示了进程与文件的关联关系,有以下常见取值: cwd:进程工作目录 txt:进程由该文件拉起(如二进制文件或脚本) rtd...:进程的根目录 mem:内存映射文件 N(u/w/r):指示该文件为进程打开的第N个文件描述符,u为可读可写模式,w为可写模式,r为可读模式 TYPE列有以下常见取值: REG:一般文件 DIR:目录

    6.9K41

    linux0.11进程调度源码分析

    下面是进程调度函数及其相关函数的代码。...task_struct ** p; /* check alarm, wake up any interruptible tasks that have got a signal */ // 处理进程的信号和状态...,相与 得到进程当前阻塞的集合,即排除进程阻塞了不能阻塞的信号,然后取反得到可以接收的 信号集合,再和signal相与,得到当前进程当前收到的信号...switch_to(next); } #define switch_to(n) {\ struct {long a,b;} __tmp; \ // ecx是第n个进程对应的pcb首地址,判断切换的下一个进程是不是就是当前执行的进程...如果时间用完则直接重新调度,否则进程可以继续执行。进程调度的时候,系统会选择时间最长的进程,防止有的进程得不到执行,当所有进程的时间片都消耗完毕,则重新计算时间。

    1.7K20

    Linux 性能分析工具 nmon for Linux

    你可以显示 CPU、内存、网络、硬盘、文件系统、NFS、大进程、resources(Linux 版本和处理程序)以及功率微分区信息。 更多例子请参考上图的"屏幕截图"。...下载源码编译 - 点击 编译 nmon 数据分析 保存好 nmon 数据以后,你可以使用以下几种工具之一来对其进行分析并生成统计图。...下载 nmon Excel 电子表格分析器 这个比较原始工具多年前由 Stephen Atkins 研发 你可以通过性能工具论坛请求支持 Linux 用户可能并不喜欢使用微软电子表格的想法,他们很难自动生成图形...nmon2rrd 一个微软免费工具 这个工具使用 rrdtool 生成所有图形和一个网站 .html 文件 从 nmon for AIX Wiki 下载 nmon2rrd 这个工具支持多台机器的自动分析...,可以通过一个浏览器对分析情况进行查看 现在 - 开源了 nmon for Linux 是一个单一的 5000 行代码的源码文件和单一的 makefile。

    6.9K60

    Linux下完胜top的进程监控工具

    top 是平时常用的进程监控工具,可以看到CPU、内存、系统负载、进程占用资源等信息 但 top 比较老了,htop 作为进程监控工具的后起之秀,不仅提供了top的基本功能,而且新增了很多亮点 htop...的特色功能 (1)按不同资源项排序 例如默认是按照内存资源占比进行排序的,现在希望根据其他列进行排序查看 按下 F6,就会列出可排序的项,用箭头选定目标项,回车确定 (2)搜索过滤进程 例如想查找某个进程...,在列表中翻找比较麻烦,就可以使用搜索功能 按下 F3,底部出现 Search 输入框,输入进程关键字,光标就会定位在此进程上 (3)树形展示 在top中也可以用树形展示进程间关系,在 htop...中更为方便 按下 F5,马上以树形结构展示进程 (4)杀掉进程 在 htop 中可以直接杀掉某进程 先用光标选定要杀掉的目标进程,然后按下 F9,左侧会出现可选的信号量,其中第9项是 SIGKILL...,选择此项就可以杀掉此进程 (5)查看进程打开的文件列表 如果系统中安装好了 lsof 命令,那么在 htop 可以直接调用此命令,来查看某个进程打开文件的情况 先用光标选中某进程,然后按下 'l'

    1.9K60

    进程监控工具 Procmon有Linux版本了

    微软最近为 Windows Sysinternals 工具集中的 Process Monitor 应用程序打造了 Linux 版本,并将其以 MIT 协议开源了出来。...Windows 上的 Procmon Process Monitor(以下简称 Procmon)是一种进程监控工具,为开发者提供了简便有效的方式来跟踪系统调用(syscall)活动。...该工具能够帮助诊断程序崩溃、资源占用率过高,甚至是潜在的恶意感染等问题。 Sysinternals 工具集在 Windows 上堪称经典,功能强大。...现在,Linux 用户也可以尝试使用 Procmon 来监控系统进程。...Linux 上的 Procmon 在 Linux 上使用 Procmon 时,可以使用以下参数指定要监视的进程 ID 或特定的系统调用: Usage: procmon [OPTIONS] OPTIONS

    1.9K40

    linux进程管理:进程,程序,线程 & 9个进程管理工具 & 作业控制

    查看所有服务的状态 命令service –status-all 将会运行所有的启动脚本来显示各个服务的运行状态: 进程的管理工具 —9个 Linux进程管理工具pstree,ps、pgrep, pkill...中的kill命令用来终止指定的进程的运行,是linux进程管理的常用命令。...通常,终止一个前台进程可以使用Ctrl+c 键,但是,对于一个后台进程就必须用kill命令来终止,我们就需要先使用 ps /pidof /pstree /top等工具获取进程PID,然后使用kill命令来杀掉进程...:**杀死进程 选择某一进程按F9即可杀死此进程,很方便 F10:退出htop 8. vmstat vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的...Linux 进程调度及多任务: 每个CPU(或CPU核心)在一个时间点上只能处理一个进程,通过时间片技术, Linux实际能够运行的进程(和线程数)可以超出实际可用的CPU及核心数量。

    3.4K10

    linux0.11进程睡眠唤醒原理分析

    进程的睡眠是通过调用sleep_on函数,该函数修改了进程的状态并且通过schedule函数切换到其他进程执行,从而实现进程的挂起,TASK_UNINTERRUPTIBLE状态的进程只能被wake_up...TASK_INTERRUPTIBLE状态的进程可以被wake_up和信号唤醒。唤醒的时候也是通过修改进程的状态为可运行,然后等待下一次进程调度,被唤醒的进程不一定马上得到执行。...} // 当前进程挂载到睡眠队列p中,p指向队列头指针的地址 void sleep_on(struct task_struct **p) { struct task_struct *tmp;...,这个版本的实现没有采用真正链表的形式, 他通过每个进程在栈中的临时变量形成一个链表,每个睡眠的进程, 在栈里有一个变量指向后面一个睡眠节点,然后把链表的头指针指向当前进程...自己被信号唤醒了, 去唤醒别的进程,自己却还睡眠 */ if (*p && *p !

    2.3K40

    Linux性能分析工具vmstat

    1、vmstat简介 vmstat(Virtual Memory Statistics 虚拟内存统计) 命令用来显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。...4、示例 示例1:vmstat 命令说明 [root@JDCloud_Server_v2 ~]# vmstat Procs(进程) r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU...因为linux总是先把内存用光 IO bi 每秒读取的块数 bo 每秒写入的块数 注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。...CPU(以百分比表示) us 用户进程执行时间百分比(user time) us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。...sy: 内核系统进程执行时间百分比(system time) sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

    1.7K20

    Linux 性能分析工具汇总

    本文档主要是结合Linux 大牛,搜集Linux系统性能优化相关文章整理后的一篇综合性文章,主要是结合博文对涉及到的原理和性能测试的工具展开说明。 背景知识:具备背景知识是分析性能问题时需要了解的。...常用的性能测试工具 熟练并精通了第二部分的性能分析命令工具,引入几个性能测试的工具,介绍之前先简单了解几个性能测试工具: perf_events:一款随 Linux 内核代码一同发布和维护的性能诊断工具...perf-tools:一款基于 perf_events (perf) 和 ftrace 的Linux性能分析调优工具集。Perf-Tools 依赖库少,使用简单。...支持Linux 3.2 及以上内核版本。 bcc(BPF Compiler Collection)::一款使用 eBP F的 perf 性能分析工具。...Linux observability sar | linux性能观测工具 sar(System Activity Reporter系统活动情况报告)是目前LINUX上最为全面的系统性能分析工具之一,

    1.3K20

    Linux进程——Linux进程进程优先级

    如果对前面Linux进程不太熟悉可以先阅读: Linux进程 本篇主要内容: 僵尸进程和孤儿进程 Linux进程优先级 1. 僵尸进程 僵尸进程就是处于僵尸状态下的进程!...所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态 僵尸状态就是Linux状态中的X死亡状态!...配置进程优先权对多任务环境的linux很有用,可以改善系统性能。...NI :NICE值,表示优先级的修改数据 NICE其取值范围是-20至19,一共40个级别 Linux进程的优先级数值范围:60~99 Linux中默认进程的优先级都是:80 Linux是支持动态优先级调整的...总结 本篇文章前部分紧贴上篇Linux进程分析完了Linux下常见的进程状态,然后初步了解了Linux进程优先级,而进程优先级与前面内容相差较大,希望大家能够多花点时间理解!

    10210

    LinuxLinux进程控制>进程创建&&进程终止&&进程等待&&进程程序替换

    1.进程创建 1.1 fork函数 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。...新进程为子进程,而原进程为父进程 #include pid_t fork(void); 返回值:自进程中返回0,父进程返回子进程id,出错返回-1 进程调用fork,当控制转移到内核中的...else if (ret > 0) { // 异常退出 printf("sig code : %d\n", st & 0X7F); } } } 测试结果: [root@localhost linux.../a.out #等20秒退出 child exit code:10 [root@localhost linux]# ....Linux鼓励将这种应用于程序之内的模式扩展到程序之间。如下图 一个C程序可以fork/exec另一个程序,并传给它一些参数。这个被调用的程序执行一定的操作,然后通过exit(n)来返回值。

    15410

    Linux进程控制——Linux进程终止

    前言:前面了解完前面的Linux进程基础概念后,我们算是解决了Linux进程中的一大麻烦,现在我们准备更深入的了解Linux进程——Linux进程控制!...我们主要介绍的Linux进程控制内容包括:进程终止,进程等待与替换,进程程序替换! 本篇主要内容: 重识进程创建 进程退出场景 错误码和退出码 1....重识进程创建 1.1 fork函数 在我们之前提到过,创建进程使用的是fork函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。...内核做: 分配新的内存块和内核数据结构给子进程 将父进程部分数据结构内容拷贝至子进程 添加子进程到系统进程列表当中 fork返回,开始调度器调度 fork函数返回值: 子进程返回0, 父进程返回的是子进程的...在多进程环境中,我们创建子进程的目的就是协助父进程办事,但是父进程怎么知道子进程把事情办得怎么样?所以父进程要知道子进程办的怎么样,就有了退出码,而main函数的返回值,就是进程的退出码!

    10910
    领券