当前位置: 首页 > 科技观察

Linux中作业管理与系统资源详解

时间:2023-03-12 01:48:19 科技观察

PartOne作业管理作业管理是指在一个登录终端同时管理多个作业的行为。简而言之,Linux中的作业管理是将作业置于后台的行为。在Windows中,我们经常管理各种任务。将工作置于后台的常用方法是最小化应用程序。那么为什么需要管理工作呢?在windows下很容易理解。当我们要操作其他工作时,一般只有将当前工作界面最小化,才能方便进行其他工作。同样,在Linux中,比如我们执行cp命令复制一个大文件时,如果不是在后台执行,那么我们只能等到复制完成后,才能处理其他工作。在详细讲作业管理之前,首先要注意以下几点:当前终端只能管理当前终端的工作,不能管理其他终端的工作。放入后台的命令需要能够连续运行一段时间,这样才能抓取到作业进行操作。比如我们把ls命令放到后台,回车后知道ls已经结束了,此时放到后台的意义就不存在了。放在后台的命令不能和前台交互或者需要前台输入,否则只能挂在后台无法运行。比如top命令需要和前台交互,vi/vim命令是编辑文档,需要用户输入。此类命令在后台处于挂起状态,无法在后台运行。具体方法:(1)将进程置于后台。在命令后面加上&字符,将命令放入后台执行,例如find/-namea&,在系统中查找名为a的文件。执行完命令后,按ctrl+z可以在后台暂停命令。最常见的是top命令。执行top后,在交互命令中按ctrl+z,让top进入后台,暂停。(2)查看后台工作命令:jobs[-l]选项-l:用于显示job的进程号如图,使用jobs命令查看后台挂起的top命令,显示其添加-l选项后的进程号。图中,“+”号表示最近放入后台的作业,也是默认恢复的第一个作业,“-”号表示放入后台的倒数第二个作业。(3)将后台挂起的工作恢复到前台,执行命令:fg%jobnumber参数:%jobnumber:jobnumber是jobs命令输出信息中***列的值,不是进程号,前面加%号区分两者,%可以省略。如上图所示,执行命令fg%1后,作业号为1的后台作业将恢复到前台执行。如果不加参数,fg命令默认会恢复带“+”的作业。(4)恢复后台暂停的工作到后台执行命令:bg%jobnumber恢复后台执行的命令不能和前台交互,否则不能恢复到后台执行。(5)从终端执行后台命令当我们需要从终端执行后台命令时,可以使用nohup命令,命令格式为nohup[command]&。第二部分系统资源视图系统资源视图用于查看各种系统资源的使用情况。通过查看系统资源,可以了解系统当前的资源使用情况,从而监控系统当前的健康状况。(1)vmstat命令监控系统资源格式:vmstat[刷新延迟][刷新次数]。比如vmstat13表示每1s刷新一次,一共刷新3次。关注输出信息:procs:进程信息字段-r:等待运行的进程数,值越大,系统越忙。-b:不能被唤醒的进程数,值越大,系统越忙。memory:内存信息字段-swpd:虚拟内存使用量,单位KB。-free:空闲内存容量,单位为KB。-buff:-cache:swap:交换分区信息字段-si:从磁盘交换到内存的数据大小,单位为KB。so:从内存交换到磁盘的数据大小,以KB为单位。该值越大,系统交换越频繁,性能越差。io:磁盘读写信息字段-bi:从块设备读取的数据大小,单位快。-bo:写入块设备的数据大小,以块为单位。值越大,系统IO越忙。system:系统信息字段-in:每秒中断的进程数。-cs:每秒事件切换次数。cpu:-us:非内核进程消耗的cpu计算时间百分比。-sy:内核进程消耗的CPU计算时间百分比。-id:免费cou的百分比。-wa:等待I/O消耗的cpu百分比。-st:虚拟机占用cpu的比例。(2)dmesg开机时内核检测信息格式:dmesg。由于内核信息过多,常与grep结合使用,如dmesg|grepCPU查看CPU信息。(3)查看内存使用状态的free命令格式:free[-b|-k|-m|-g]选项:-b:以字节为单位显示。-k:以KB显示,默认。-m:以MB显示。-g:以GB显示。输出信息:***行:total为总内存,used为已用内存,free为空闲内存,shared为多进程共享内存,buffres为缓冲内存,cached为缓存内存。第二行:-/buffers/cache的内存数,相当于最后一行的used-buffers-cached。+/buffers/cache中的内存数量相当于第一行的free+buffers+cached。第三行:total为swap总数,used为已使用swap数量,free为空闲swap数量。(4)查看CPU信息命令:cat/proc/cpuinfo(5)uptime命令显示系统的启动时间和平均负载,即top命令的第一行,在w命令中也可以看到.(6)查看系统及内核相关信息命令格式:uname[-a|-r|-s]选项:-a:查看系统所有相关信息。-r:查看内核版本。-s:查看内核名称。(7)确定当前系统位数命令:file/bin/ls通过查看ls命令确定操作系统的位数。(8)查询当前Linux系统的release版本命令:lsb_release-a