生产环境之“进程”两字

一、进程概念

运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程UID、GID、和SELinux语境决定对文件系统的存取和访问权限,通常从执行进程的用户来继承 存在生命周期。

二、进程状态

1)运行状态:running    2)就绪状态:ready  3)睡眠可中断

4)睡眠不可中断   5)停止状态 stopped   6)僵死状态  zombie

三、进程管理命令

Linux系统状态的查看及管理工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

Linux系统各进程的相关信息均保存在/proc/PID目录下 的各文件中

pstree命令:

pstree - display a tree of processes

ps命令:

ps - report a snapshot of the current processes

ps [OPTION]...

-e:显示所有进程和-a等同

-a:显示所有进程和-e等同

-f:选项显示其进程的父进程

-u:选项显示所有者信息

-x:包括不链接终端的进程

-o:指定属性进行显示:pid,comm,%cpu,%mem,state,tty,euser(effective user),ruser(real user)

VSZ:Virtual Memory Size,虚拟内存集    RSS:常驻内存集(物理内存集)



stat状态:

R:running

S:interruptable sleeping

D:uninterruptable sleeping

T:stopped

Z:zombie

常用组合:-ef

-e: 显示所有进程

-f: 显示完整格式程序信息

常用组合:-eFH

-F: 显示更完整格式的进程信息

-H: 以进程层级格式显示进程相关信息

常用组合:自定义 -eo pid,tid,class,rtprio,ni,pri,psr, pcpu,stat,comm axo     stat,euid,ruid,tty,tpgid,sess,pgrp,ppid, pid,pcpu,comm

ni:nice值 pri:priority,优先级 psr:processor,cpu编号 rtprio:实时优先级



pgrep命令:

pgrep [options] pattern

选项:

-u:uid,进程的生效者

-U:real user,真正发起运行命令者

-t:terminal,与终端相关的进程

-l: 显示进程名 -a: 显示完整格式的进程名 -P pid: 显示指定进程的子进程

按确切的程序名称:/sbin/pidof pidof bash

三、进程管理工具



top:

htop:

栏目信息:us:user space 用户空间    sy:内核空间    ni:nice值    wa:等待I0时间

id:空闲    hi:硬中断    si:软中断    st: stolen 虚拟机偷走的时间

进程相关参数说明:

PID:任务的进程号    PPID:进程的父进程的进程号    RUSER:进程的所有者    EUSER:进程的生效用户

TTY:终端   PR:优先级   %CPU:CPU的占有率   %MEM:内存的占有率 S:进程状态    TIME+:CPU工作时间

top:有许多进程内置命令

1)排序

P:以占据的cpu的百分比,%cpu  M:占据内存的百分比,%MEM  T:累积占据cpu时长time

2)首部信息

uptime信息:l命令     tasks及cpu信息:t命令      memory信息:m命令

3)退出命令:q 修改刷新时间:s  终止指定进程:k  保存文件:W



kill命令:向进程发送进程控制信号,以实现对进程管理。

1)SIGHUB:无需关闭进程,而让其重读配置文件

2)SIGINT: 中止正在运行中的进程

9)SIGKILL: 杀死正在运行的进程

15)SIGTEM: 中止正在运行的进程,让其运行完,再次杀死

18)SIGCONT: 继续运行

19)SIGSTOP: 后台休眠

指定信号的方法: (1) 信号的数字标识;1, 2, 9 (2) 信号完整名称;SIGHUP (3) 信号的简写名称;HUP

杀死进程的方法:

按PID:kill [-SIGNAL] pid...

按名称:killall [-SIGNAL] COMM

按模式:pkill [options] pattern

-SIGNAL

-u uid:effective user 生效者

-t:terminal:与指定终端相关的进程

-l:显示进程名

-a:显示完整格式的进程名

-P:pid 显示父进程为此处指定的进程的 进程列表



作业管理:

linux的作业控制:

1)前台作业:通过终端启动,且启动后一直占据终端

2)后台作业:可通过终端启动,但启动后即转入后台运行

3)让作业运行在后台:ctrl+z  command &

4)后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭 后台作业。如果希望送往后台后,剥离与终端的关系 #screen;command 或者#nohup command &

5)查看所有作业:jobs

6) 作业控制:

fg:把指定的后台作业调回前台 如:fg 1

bg:让送往后天的作业在后台继续运行 如:bg 1

kill:终止指定的进程

演示:



小耳朵原创作品,如有瑕疵留言管理员小耳朵:)



本文出自 “小耳朵” 博客,请务必保留此出处http://purify.blog.51cto.com/10572011/1847456

时间: 2024-11-03 21:53:08

生产环境之“进程”两字的相关文章

生产环境跑PHP动态程序

Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒” 我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,从Nginx的日志可以统计出,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量: 服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeo

生产环境下JAVA进程高CPU占用故障排查

问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析:1,程序属于CPU密集型,和开发沟通过,排除此类情况.2,程序代码有问题,出现死循环,可能性极大. 问题解决:1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出.2,记得原来通过strace跟踪的方法解决了一台PHP服务器CPU占用高的问题,但是通过这种方法无效,经过google搜索,发现可以通过下面的方法进行解决,那就尝试下

你只差这两步 | 将Sentinel 控制台应用于生产环境

摘要: 这是围绕 Sentinel 的使用场景.技术对比和实现.开发者实践等维度推出的系列文章的第四篇. 第一篇回顾:Dubbo 的流量防卫兵 | Sentinel如何通过限流实现服务的高可用性 - 传送门 第二篇回顾:RocketMQ 的保险丝| Sentinel 如何通过匀速请求和冷启动来保障服务的稳定性 - 传送门 第三篇回顾:技术选型:Sentinel vs Hystrix - 传送门 Sentinel 是阿里中间件团队研发的面向分布式服务架构的轻量级高可用流量控制组件,于今年7月正式开

rabbitmq 生产环境配置

目录 一 rabbitmq 生产部署 1.1 rabbitmq.conf 1.2 advanced.config 1.3 rabbitmq-env.conf 1.4 在生产环境中不适用的策略. 一 rabbitmq 生产部署 RabbitMQ 常用的三种自定义服务器的通用方法: 配置文件 rabbitmq.conf 环境变量文件 rabbitmq-env.conf 补充配置文件 advanced.config rabbitmq.conf和rabbitmq-env.conf的位置 在二进制安装中路

redis的单机安装与配置以及生产环境启动方案

简单介绍一下redis的单机安装与配置,方便自己记录安装步骤的同时方便他人获取知识. 首先,从官网下载最新版的(稳定版)的redis安装包.官网地址如下:https://redis.io/download 下载源码包后,redis需要编译安装.需要安装gcc和tcl,gcc用于编译tcl用于测试. 使用命令安装gcc,yum install gcc,一路选择yes,gcc就可以安装成功. 接下来安装tcl,首先获取tcl源码包(见百度云盘)或者使用命令:wget http://downloads

linux生产环境精华优化实战配置(亲测)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 编写人:陈飞 邮箱:[email protected] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CentOS系统安装之后并不能立即投入生产环境使用,往往需要先经过我们运维人员的优化才行.在此讲解几

Hadoop生产环境的配置

生产环境的搭建 主机规划 这里我们使用5 台主机来配置Hadoop集群. djt11/192.168.3.11 djt17/192.168.3.12 djt13/192.168.3.13 djt14/192.168.3.14 djt15/192.168.3.15 namenode 是 是 否 否 否 datanode 否 否 是 是 是 resourcemanager 是 是 否 否 否 journalnode 是 是 是 是 是 zookeeper 是 是 是 是 是 Journalnode和

redis概述,特点,与Memached的不同,生产环境主从配置,redis配置文件解析

Redis概述: 是一个基于Key-Value的持久化数据库存储,支持丰富的数据类型,用C语言编写,可基于内存又可持久化的日志型.Key-Value数据库,并提供多种语言的API Redis特点 1.Key-Value健值类型存储 2.支持数据可靠存储及落地 3.单进程单线程高性能服务器 4.单机qps(每秒查询率)可以达到10w 5.适合小数据量高速读写访问 Redis跟Memached的不同 1.Redis可以持久化数据存储 2.性能高很,Redis能支持超过10W每秒的读写频率 3.丰富的

利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境

一.环境描述 安装有ansible的服务器:192.168.13.45 测试环境服务器:192.168.13.49 /home/app/api-tomcat/webapps/api.war为测试环境新版本war包位置 生产环境服务器:192.168.13.51 /home/app/api-tomcat/webapps/api.war为生产环境war包位置     /home/app/api-tomcat/webapps/api为生产环境项目位置 /home/app/tomcat.bak/api/