[Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务

进程管理:查看与终止

  • 进程查看

  1. 进程是正在执行的程序或命令。

  2. 进程管理的作用:

  判断服务器健康状态,

  查看系统中所有进程

  杀死进程

  3. 查看系统中所有进程

  ps aux    # 查看系统中所有进程,使用BSD操作系统格式

  ps le    # 查看系统中所有进程,使用Linux标准命令格式

  USER:该进程由哪个用户产生的;

  PID:进程的ID号;

  %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;

  %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;

  VSZ:该进程占用虚拟内存的大小,单位KB;

  RSS:该进程占用实际物理内存的大小,单位KB;

  TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-256代表虚拟终端。?代表由内核产生;

  STAT:进程状态。常见的状态有(R:运行、S:睡眠、T:停止、s:包含子进程、+:位于后台);

  START:该进程的启动时间;

  TIME:该进程占用CPU的运算时间,注意不是系统时间;

  COMMAND:产生此进程的命令名;

  4. 查看系统健康状态

  top [选项]

    -d 秒数    :    指定top命令每隔几秒更新,默认是3秒;

  在top命令的交互模式当中可以执行的命令:

    ? 或 h    :    显示交互模式的帮助;

    P    :    以CPU使用率排序,默认;

    M    :    以内存的使用率排序;

    N    :    以PID排序;

    q    :    退出top;

  第一行是任务队列信息

    12:26:46    # 系统当前时间(不一定准确)

    up 1 day, 13:32    #系统的运行时间,本机已运行1天 13小时32分钟

    2 users    # 当前登录了两个用户

    load average:0.06, 0.11, 0.12    # 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时(1核CPU),负载较小。如果大于1,系统已经超出负荷。

  第二行是进程信息

    Tasks:95 total    # 系统中的进程总数

    1 running    # 正在运行的进程数

    94 sleeping    # 睡眠的进程

    0 stopped    # 正在停止的进程

    0 zombie    # 僵尸进程。如果不是0,需要手工检查僵尸进程

  第三行是CPU信息

    Cpu(s):0.1%us    # 用户模式占用的CPU百分比

    0.1%sy    # 系统模式占用的CPU百分比

    0.0%ni    # 改变过优先级的用户进程占用的CPU百分比

    99.7%id    # 空闲CPU的百分比

    0.1%wa    # 等待输入/输出的进程的占用CPU百分比

    0.0%hi    # 硬中断请求服务占用的CPUb百分比

    0.1%si    # 软中断请求服务占用的CPU百分比

    0.0%st    # st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

  第四行是物理内存信息

    Mem:1870784k total    # 物理内存的总量,单位KB

    1795092k used    # 已经使用的物理内存数量

    85028k free    # 空闲的物理内存数量,如果是虚拟机就是虚拟机中所剩可用内存,(85028/1024=83M)

    0 buffers    # 作为缓冲的内存数量

  第五行是交换分区(swap)信息

    Swap:2097148 total    # 交换分区(虚拟内存)的总大小

    736812k used    # 已经使用的交换分区的大小

    1360336 free    # 空闲交换分区的大小

    300712 cached Mem   # ​作为缓存的交换分区的大小

  ( 以上几个重要指标是:平均负载CPU空闲率内存空闲大小

  ( top命名本身也是耗资源的,没有必要一直开着,用完就退出 )

  5. 查看进程树

  pstree [选项]

    -p    :    显示进程的PID

    -u    :    显示进程的所属用户

  • 终止进程

  kill -l    # 查看可用的进程信号。

  kill -1 进程ID    # 该信号让进程立即关闭,然后重新读取配置文件之后重启。

  kill -9 进程ID    # 立即结束程序的运行,本信号不能被阻塞、处理和忽略。一般用于强制终止进程。

  kill -15 进程ID    # 正常结束进程的信号,kill的默认信号。

  killall [选项][信号] 进程名    # 按照进程名杀死进程

    选项

    -i    :    交互式,询问是否要杀死某个进程

    -I    :    忽略进程名的大小写

  pkill [选项][信号] 进程名    # 按照进程名终止进程(与killall完全一样,除了选项)

    选项

  -t 终端号    :    按照终端号提出用户

   ( w    # 使用w命令查询本机已经登录的用户 )

   ( pkill -t -9 pts/1    # 强制杀死从pts/1虚拟终端登录的进程 )


工作管理

  • 把进程放入后台

  1. 命令结尾加 & 符号,在后台继续执行;

  2. 命令执行过程中按 ctrl+z ,把任务放入后台暂停运行。

    一个典型场景是,vim 编辑某些文件时,使用 ctrl+z 可以保留工作现场退回到终端,之后通过 fg 回到编辑界面。

  • 查看后台的工作

  jobs [-l]

    参数: -l     显示工作的 pid

  “+” 代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。

  “ - ” 代表倒数第二个放入后台的工作。

  • 将后台暂停的工作恢复到前台执行

  fg %工作号

    参数:%工作号  注意工作号是 jobs 列出的在行首的数字,不是PID

  • 把后台暂停的工作恢复到后台执行

  bg %工作号

    注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行,比如 top、vim.


系统资源查看

  • vmstat 命令监控系统资源使用情况

    vmstat [刷新延时  刷新次数]

    vmstat  2  3     # 共输出三次,每次间隔2秒,主要是看内存和CPU的使用,比 top 的输出内容简洁

  • dmesg 开机时内核检测信息

    dmesg

    dmesg | grep CPU

  • cat /proc/cpuinfo 查看CPU信息
  • free 命令专门查看内存使用状态

    free [-b|-k|-m|-g|-h]

    缓存(cache)和缓冲(buffer)的区别:

    缓存是用来加速数据从硬盘中“读取”的,而缓冲是用来加速数据“写入”硬盘的。

  • uptime 命令

    显示系统的启动时间和平均负载,也就是 top 命令的第一行,w 命令也可以看到这个数据。

  • 查看系统与内核相关信息

    uname [选项]

      -a  查看系统所有相关信息

      -r  查看内核版本,主要用途

      -s  查看内核名称

  • 判断当前系统的位数

    file /bin/ls  # /bin/ls: ELF 64-bit ......

    

  • 查询当前 Linux 系统的发行版本

    lsb_release -a

  • 列出进程打开或使用的文件信息

    lsof [选项]

      -c 字符串  只列出以字符串开头的进程打开的文件

      -u 用户名  只列出某个用户的进程打开的文件

      -p pid    列出某个PID进程打开的文件


系统定时任务

  • cron 服务管理与访问控制

    systemctl restart cron.service    # 重启cron服务

    systemctl enable cron.service      # 设置开机自启动

    systemctl list-unit-files          # 查看是否开机自启动

    systemctl list-units --type=service  # 查看所有已启动的服务

  • 用户的 crontab 设置

    crontab [选项],格式:分-时-日-月-周 命令

      -e  编辑 crontab 定时任务

      -l   显示用户的 crontab 任务

      -r   删除当前用户所有的 crontab 任务

Link:http://www.cnblogs.com/farwish/p/4866659.html

上一篇:[软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)


下一篇:nodejs 爬虫