centos

1、服务和进程

linux的用户等级   vim /etc/inittab
    0 : 关机模式
    1 : 单用户模式
    2 : 无网络的多用户模式
    3 : 有网络的多用户模式
    4 : 保留模式
    5 : 带图形界面的多用户模式
    6 : 重启模式
切换等级
    init 等级号
    init 0      关机
    init 6      重启
查看当前等级
    runlevel
    who -r
查看随开机启动的服务
    chkconfig --list
    控制服务的开启与关闭
    iptables #防火墙
        service iptables stop | start | restart | status
        #/etc/init.d/iptables start
        #yum 默认的安装路径
    假如:你现在自己安装了一个软件,是nginx,你想通过service这个指令控制服务的开启与关闭,你需要将nginx的启动脚本放到  /etc/init.d/ 这个文件夹中,并且修改权限
        service nginx restart | start | stop
        #apache
        service httpd  restart | start | stop
    设置开机启动
        chkconfig nginx on   默认这个服务在2345模式开机启动
        chkconfig --level 35 nginx on  指定模式开机启动
top,可以实时的查看系统的运行状态,尤其是内存的使用情况
    输入大写的M  将进程按照内存利用率排序
    按q退出查看
w,查看当登录该系统的所有用户
free,查看当前系统内存使用情况   -h 以人性化的方式显示
ps,查看进程相关信息
    ps -ef | grep ssh
    ps aux | grep ssh
kill,杀死一个进程,根据进程id号杀死进程
    kill -9 进程id号
    service sshd start
在linux里面,随开机启动的服务,我们称之为守护进程(daemon)
netstat -lnp

top详解

第一行:
13:42:59 当前系统时间
6 days, 9:29 系统已经运行了6天6小时29分钟(在这期间没有重启过)
3 users 当前有3个用户登录系统
load average: 3.06,3.01, 1.79 load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑 CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行: Tasks 任务(进程)
系统现在共有131个进程,其中处于运行中的有3个,127个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有1个。

第三行:cpu状态
10.6% us 用户空间占用CPU的百分比。
2.2% sy 内核空间占用CPU的百分比。
0.0% ni 改变过优先级的进程占用CPU的百分比
84.5% id 空闲CPU百分比
2.5% wa IO等待程序占用CPU的百分比
0.1% hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si 软中断(Software Interrupts)占用CPU的百分比
在这里CPU的使用比率和windows概念不同,如果你不理解'用户空间'和'内核空间',需要充充电了。

第四行:内存状态
8300124k total 物理内存总量(8GB)
5979476k used 使用中的内存总量(5.7GB)
2320648k free 空闲内存总量(2.2G)
455544k buffers 缓存的内存量 (434M)

第五行:swap交换分区
8193108k total 交换区总量(8GB)
41568k used 使用的交换区总量(40.6M)
8151540k free 空闲交换区总量(8GB)
4217456k cached 缓冲的交换区总量(4GB)

这里要说明的是不能用windows的内存概念理解这些数据,如果按windows的方式此台服务器危矣:8G的内存总量只剩下530M的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存: 2320648+455544 +4217456 = 6.6GB。

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行是空行

第七行以下:各进程(任务)的状态监控
PID 进程id
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程名称(命令名/命令行)