进程:程序的运行态 占用的CPU和内存的资源
线程:运行在进程中的一个部分 占用的CPU和内存的资源
进程和线程的区别
进程与进程之间是相互独立的
进程1: 1G内存 + 进程2: 1G内存 = 2G
线程与线程之间共享内存
线程1: 1G内存 + 线程2: 1G内存 <= 2G
静态查看进程的指令: 显示的是在执行指令的那一秒时候的进程状态
ps pidof pgrep
动态查看进程的指令: 根据时间段进行刷新。
top htop atop
%cpu 0.3 us, 0.3 sy , 99.3 id, 0.0 wa
us: user 用户拥有的进程占用CPU 百分比
sy: system 系统用户拥有的进程占用CPU 百分比情况
id: idle cpu空闲率
wa: IO等待进程占用CPU百分比
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7218 root 20 0 107996 620 524 R 100.0 0.1 1:54.59 dd
top
%Cpu 100 à 占用单个CPU的资源情况
linux 分时系统
CPU处理进程,
把进程进行切片的操作(根据时间切片)
查看内存 free –m
Mem
swap 虚拟内存: 目的缓解物理内存不足,把磁盘的一部分空间模拟内存去用。
Swap必须有,希望不要去用到
Top
d
M
P
Htop
kill pid # 将进程终止,正常退出。
kill -9 7295 # 将进程杀死
1 信号 SIGHUP 重新加载
15 信号 TERM 终止进程信号
9 信号 KILL 强制杀死进程
kill -l 查看信号标示符号
pkill 能够根据条件检索进程并终止
优先级 数字越小,优先级越高(-20 至 19 )
- nice 在进程创建的同时,指定进程优先级
nice -n 5 dd if=/dev/zero of=/dev/null
- 修改进程优先级 renice
renice -n -1 26613
将进程放到后台去运行,执行命令之后加上“&”
dd if=/dev/zero of=/dev/null &
后台命令运行哪些场景
备份
tar
回家作业查询信号对应的含义
7版本的启动方式
systemctl status sshd
systemctl start sshd
systemctl stop sshd
systemctl enable sshd
systemctl disable sshd
6版本的启动方式
/etc/init.d/sshd start | stop | restart
安装程序的方式
1) 基于rpm包安装程序
rpm yum
特点:程序的路径是固定的,程序包是别人定制好
2) 二进制安装 可指定位置进行安装,更多一些个性化的操作
3) 源码编译: 灵活程度最高,功能、路径等等,最复杂的。
yum:基于rpm包的管理格式,提供了一套自动解决依赖关系的方法。
- 分析每个程序的依赖关系,并将这些依赖关系记录下来。Repodata目录
- 当使用yum安装程序的时候,需要去找到依赖关系的数据在哪里
- 根据依赖关系进行程序的安装
仓库 1. 程序 2. Repodata目录,存放依赖关系的数据文件
/etc/yum.repos.d目录下,仓库指向文件
告诉本地yum,你要装的程序在远程xxxx位置,你要搜寻的存放依赖关系的数据文件在什么位置
yum源
yum –y install wget
- 查找/etc/yum.repos.d/配置文件,我要去哪里找程序及程序的依赖关系
- 分析依赖关系,并下载程序进行安装的操作
仓库指向文件的写法:
/etc/yum.repos.d/
要求
- 所有需生效的文件.repo作为结尾
- 配置文件的格式
[root@jenny01 yum.repos.d]# cat epel.repo
[test] # 自定义名称
name= # 说明
baseurl=https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/ # 指向repodata目录所在位置,file:// https://
enable=1 # 启用该段配置
gpgcheck=0 # 是否需要通过gpgkey做检测
yum makecache
yum search zip
yum install nginx
查询:
rpm -ql nginx # 查询程序安装出来的文件
rpm –qa # 查看所有已安装的程序
rpm –qf # 查看指定文件由哪个程序安装出来的
rpm -qi sysstat # 查看已安装程序详细信息
卸载:
rpm –e
rpm -e nginx --nodeps # 忽略依赖关系,仅卸载程序
更新:
yum update
注意:
rpm –ivh ..rpm
yum 只需指定程序名即可
源码编译的过程
- 官方网站下载源码包
- 进行参数筛选并检测
./configure --prefix=/opt/nginx --sbin-path=/opt/nginx/sbin/nginx --modules-path=/opt/nginx/modules --conf-path=/opt/nginx/conf/nginx.conf
- 编译、安装
make
make install
装bzip2 xz sysstat
看一下/etc/passwd
划分分区 à 创建文件系统 -> 挂载
格式化 访问磁盘的入口
分区能分几个区?
针对磁盘文件做操作
对应的指令 fdisk
通常情况下,磁盘文件/dev
sata/scsi sda sdb sdc
hda hdb
vda vdb
xvda xvdb
分区文件 /dev/sda1 /dev/sda2 /dev/sda3
fdisk /dev/sdc
n # 新建分区
p 主分区
e 扩展分区
d # 删除分区
p # 打印当前分区信息
创建逻辑分区的前提是,扩展分区必须存在,且逻辑分区空间来自于扩展分区。
能够直接用的分区,只有主分区和逻辑分区
创建文件系统(格式化)
组织数据的方式 -à文件系统
inode block 分区的
linux ext4 xfs
创建文件系统的指令
ext4 mkfs.ext4 /dev/sdc1
xfs mkfs.xfs /dev/sdc2
blkid /dev/sdc1 # 用来查看分区的文件系统类型
报警: no more free space
df –h 查看磁盘空间大小是足够的,很可能是因为inode不够了。
挂载: mount
mount /dev/sdc1 /mnt
卸载: umount
umount /mnt
mount 开机的时候如果想要挂载
/etc/fstab
/dev/sdc1 /mnt ext4 defaults 0 0
mount –a
创建一个lvm的步骤
- 底层分区存在
- 给分区打上标记,做成物理卷
- 将物理卷整合成卷组
- 将卷组划分成逻辑卷
创建对应的指令
物理卷 pvcreate
卷组 vgcreate
逻辑卷 lvcreate
创建一个LV,大小要求500M。
pvcreate /dev/sdc3 /dev/sdc5
vgcreate datavg /dev/sdc3 /dev/sdc5
lvcreate -n datalv -L 500M datavg
设备文件/dev/datavg/datalv
mkfs.xfs /dev/datavg/datalv
查看lvm相关信息的
pvs
vgs
lvs
lvm
场景1:
在线扩容:
lvextend
lvextend -L +524M /dev/datavg/datalv 在原有的基础上增加500M空间
针对文件系统进行扩展
xfs_growfs /dev/mapper/datavg-datalv
vgextend
1037 pvcreate /dev/sdc6
1038 vgextend datavg /dev/sdc6
1039 vgs
1040 lvs
1041 lvextend -L +1G /dev/datavg/datalv
1042 lvs
1043 xfs_growfs /dev/datavg/datalv
文件系统是xfs 对应的扩展文件命令是xfs_growfs
文件系统是ext4 对应的命令是resize2fs /dev/datavg/datalv
lvreduce
1) xfs不支持缩小
2) ext4 是支持缩小,缩小的步骤
- umount
- resize2fs /dev/datavg/datalv 500M
- lvreduce –L –
- vgreduce
- pvremove
lvm
Swap
[root@jenny01 datalv]# mkswap /dev/vgtest/swap
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=50b15e3d-9b6f-4ead-be54-47dc0bc84a68
[root@jenny01 datalv]# swapon /dev/vgtest/swap # 激活swap
[root@jenny01 datalv]# swapon –s # 查看当前swap的构成
[root@jenny01 datalv]# free -m
total used free shared buff/cache available
Mem: 972 147 651 7 173 642
Swap: 4095 0 4095
/etc/fstab
/dev/mapper/centos-swap swap swap defaults 0 0
作业
- 自己研究netstat命令的用法
- 构建一个ext4的文件系统,大小500M。
- 将该文件系统在线扩展至1G
- 构建1G的swap,并要求开机自动激活该swap。