程序(Program) 定义:程序是计算机指令的集合,这些指令被组织成一定的逻辑顺序,用于完成特定的任务或实现特定的功能。程序是静态的,它存储在磁盘等存储介质上,直到被加载到内存中执行。 特点: 它是计算机指令的集合,包括数据结构和算法。 【考点】 程序是静态的,不直接参与CPU的运算。 程序需要通过某种方式(如操作系统)被加载到内存中,并由CPU执行。
进程(Process)
定义:进程是系统进行资源分配和调度的一个独立单元,是程序的一次动态执行过程。它拥有独立的系统资源,如内存空间、文件描述符等。
特点:
进程是动态的,是程序在特定数据集上的执行过程。
进程是系统进行资源分配和调度的独立单元。
每个进程都有一个唯一的标识符(PID)。
进程拥有独立的内存空间、文件描述符等资源。
进程之间通过IPC(进程间通信)机制进行通信。
线程(Thread)
定义:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的独立运行的单位。一个进程可以拥有多个线程,这些线程共享进程的资源(如内存空间、文件描述符等),但每个线程都有自己独立的执行栈和程序计数器。
特点:
线程是进程内的一个实体,是CPU调度的基本单位。
线程之间共享进程的资源,但每个线程都有自己的执行栈和程序计数器。
由于线程间共享进程的资源,线程间通信通常比进程间通信更加高效。
线程的创建和销毁开销比进程小,因此线程是并发执行多任务的首选方式。
总结
程序是静态的,是计算机指令的集合。
进程是程序的一次动态执行过程,是系统进行资源分配和调度的独立单元。
线程是进程的一个实体,是CPU调度的基本单位,线程之间共享进程的资源。
这三个概念在计算机系统中共同工作,实现了复杂的功能和任务。
查看cpu状态: top
常看内存信息: free
查看磁盘信息:df - hl , lsblsk
top:看cpu
top行含义:系统当前时间 运行时间 用户量 load averge :系统平均负载。
内 容 | 说 明 |
---|---|
10:12:28 | 系统当前时间 |
up 13:05 | 系统的运行时间.本机己经运行 13 小时 05 分钟 |
3 users | 当前登录了三个用户 |
load average: 0.00,0.01,0.05 | 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 |
Tasks任务行含义:
Tasks: 230 total | 系统中的进程总数 |
---|---|
1 running | 正在运行的进程数 |
229 sleeping | 睡眠的进程数 |
0 stopped | 正在停止的进程数 |
0 zombie[需要优化] | 僵尸进程数。如果不是 0,则需要手工检查僵尸进程 |
查看cpu总核数?
grep 'core id' /proc/cpuinfo |sort -u |wc -l
vim /proc/cpuinfo vim /proc/meminfo
%cpu(s)行(含义)参数介绍:
|-----------------|-------------------------------------------------------------|
| Cpu(s): 0.1 %us | 用户模式占用的 CPU 百分比 |
| 0.1%sy | 系统模式占用的 CPU 百分比 |
| 0.0%ni | 改变过优先级的用户进程占用的 CPU 百分比 |
| 99.7%id | idle缩写,空闲 CPU 占用的 CPU 百分比 [考点] |
| 0.1%wa | 等待输入/输出的进程占用的 CPU 百分比 |
| 0.0%hi | 硬中断请求服务占用的 CPU 百分比 |
| 0.1%si | 软中断请求服务占用的 CPU 百分比 |
| 0.0%st | st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比 |
Kib Mem(含义):
内 容 | 说 明 |
---|---|
Mem: 1863252 total | 物理内存的总量,单位为KB |
829960 used | 己经使用的物理内存数量 |
68352 free | 空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存 |
96490 buff/cache | 作为缓冲的内存数量 |
KiB Swap (含义):
内 容 | 说 明 |
---|---|
Swap: 2097148 total | 交换分区(虚拟内存)的总大小 |
3336 used | 已经使用的交换分区的大小 |
2093812 free | 空闲交换分区的大小 |
622420 avail Mem | 可用内存 |
top 命令的整体信息部分,就可以判断服务器的健康状态 。如果 1 分钟、5 分钟、15 分钟的平均负载高于CPU核数,说明系统压力较大 。如果物理内存的空闲内存过小,则也证明系统压力较大。
free:看内存
df -hl , lsbl:看磁盘
ps -ef :看进程
PID | 进程的 ID。 |
---|---|
USER | 该进程所属的用户。 |
PR | 优先级,数值越小优先级越高。 |
NI | 优先级,数值越小优先级越高。 |
VIRT | 该进程使用的虚拟内存的大小,单位为 KB。 |
RES | 该进程使用的物理内存的大小,单位为 KB。 |
SHR | 共享内存大小 ,单位为 KB。计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)4084-2628=1456kb【考点】 |
S | 进程状态。其中S 表示睡眠,R 表示运行 |
%CPU | 该进程占用 CPU 的百分比。 【瞬时】 |
%MEM | 该进程占用内存的百分比。【瞬时】 |
TIME+ | 该进程共占用的 CPU 时间。 |
COMMAND | 进程名 |