Linux学习纪要1.0
2022-04-16 17:52:28 0 举报
AI智能生成
mark一下
作者其他创作
大纲/内容
第25天
1. 进程前后台切换知识
1.为什么要学习进程的前后台切换
远程拷贝大文件,持续时间长的操作。为防止中断,一般要放在后台运行。
有些进程需要定时执行
需要一直运行(守护进程)
2.常见的前后台切换的命令
ctrl+z: 暂停当前进程,并放在后台。
bg:放入后台
fg:拿回前台
jobs:查看当前队列,含ID
kill %id:
3. 需要放后台的内容
1. 启动命令(默认放在后台),加参数放到后台
2.shell 脚本(命令)放后台
3.这些需要放在后台的,需要在命令的结尾加“&” 符号:脚本或者命令要全路径
4.把程序放在后台的三种方法
ctrl+z,bg, fg,jobs,kill %id
临时用
命令以“&” 结尾
后台运行脚本用
使用screen
管理员常用
1. screen -S tmp_name
创建一个后台屏幕
退出:ctl+a+d,或者关闭窗口
2.screen -list
展示已有的后台任务
3. screen - r tmp_name
从后台拉回创建的屏幕
2. strace命令及生产经验思维
系统调用:系统为应用程序提供的接口连接接口
进程执行:调用很多接口,接口如果异常,进程就会不正常
strace:跟踪进程的系统调用
命令形式:
strace -f 命令
strace -p 进程号
重要的参数
-o :指定日志写入的文件
-f :跟踪目标进程,以及目标进程创建的所有子进程。
-p :pid 指定要跟踪的进程id
-t ,-tt,-ttt: 指定时间信息的精细度
-e :expr 输出过滤器,通过表达式,可以过滤掉你不想要的输出。
企业案例:
php进程cpu百分百了
- pgrep 进程, 获取进程号
2.strace -p 进程号, 发现问题
3. ltrace与strace的关系
ltrace:跟踪进程的库函数调用
strace:跟踪进程的每个系统调用
4. 排查问题的过程
1. 找出有问题的进程:top ps pstree pgrep
2. 调整优先级:nice renice
3.杀进程:kill killall pkill
4.进程前后台切换:
ctrl+z,bg,fg,jobs,kill %id
& 后台运行
screen
保持操作的会话,使之不中断。运维人员用
5.进程在干什么:strace ltrace gdb
第26天
一、平均负载:load average
查看命令
w
uptime
最简洁的
top
cat /proc/loadavg
是什么:
是衡量系统繁忙的一个综合指标
一个进程产生要占用很多资源
pid
内存
文件描述符
cpu
磁盘
主要是cpu,io的繁忙程度
ps ,top, sar :看cpu的繁忙
iostat,iotop:看磁盘繁忙
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。
系统平均负载被定义为在特定时间间隔内【cpu运行队列中的平均进程数】
系统平均负载被定义为在特定时间间隔内【cpu运行队列中的平均进程数】
可运行状态进程
指正在使用cpu或者正在等待cpu的进程
ps命令看到处于R状态的进程。
不可中断进程
(你做什么事情的时候是不能打断的?)系统中常见的是等待硬件设备I/O
ps命令中看到的D状态的进程
平均负载的指标说明:
根据cpu的核数,来判断负载
例如:2颗4核cpu(总共8核),负载为8的时候为临界点(系统开始慢的临界点)
一般监控要预留30%,即8x70%=5.6的时候为经验值的临界点,需要预警
平均负载的指标:
1分钟:
cpu处理进程1分钟内的繁忙程度
5分钟:
cpu处理进程5分钟内的繁忙程度
15分钟:
cpu处理进程15分钟内的繁忙程度
:~$ uptime
10:09:38 up 2 days, 23:56, 3 users, load average: 0.58, 0.91, 0.96
10:09:38 up 2 days, 23:56, 3 users, load average: 0.58, 0.91, 0.96
总结
1.一核的临界点为1, n核的临界点为n,经验临界点n*70%
2. 查询核数(用于计算负载):
grep -c "pysical id" /proc/cpuinfo
grep 'processor' /proc/cpuinfo |wc -l
grep 'cpu cores' /proc/cpuinfo |wc -l
top命令按1
lscpu
平均负载案例分析实战
1. 用stress,mpstat,pidstat等工具,找出平均负载升高的根源
stress
stress是linux系统压力测试工具,这里我们用作异常进程模拟平均负载身高的场景
stress --cpu 1 --timeout 600
mpstat
mpstat是【多核cpu性能分析工具】,用来实时查看每个cpu的性能指标,以及所有cpu的平均值。
iostat
iostat是【I/O性能分析工具】
pidstat
pidstat是一个常用的【进程性能分析工具】,用来实时查看进程cpu,内存,I/O以及上下文切换等性能指标
案例命令集合
1. 模拟cpu负载高
stress --cpu 1 --timeout 600
2.通过uptime或者w查看负载
watch -d uptime
3.查看整体状态mpstat
mpstat -P ALL 1 : 查看每个cpu核心使用率
4.精确到进程
pidstat
linux系统系统优化的帮手
- sar: collects and reports system activity information;
- iostat: reports CPU utilization and disk I/O statistics;
- tapestat: reports statistics for tapes connected to the system;
- mpstat: reports global and per-processor statistics;
- pidstat: reports statistics for Linux tasks (processes);
- sadf: displays data collected by sar in various formats;
- cifsiostat: reports I/O statistics for CIFS filesystems.
- iostat: reports CPU utilization and disk I/O statistics;
- tapestat: reports statistics for tapes connected to the system;
- mpstat: reports global and per-processor statistics;
- pidstat: reports statistics for Linux tasks (processes);
- sadf: displays data collected by sar in various formats;
- cifsiostat: reports I/O statistics for CIFS filesystems.
二、Linux系统服务管理
1.运行级别
运行级别就是linux启动的时候处于不同状态标识的集合。
文本模式
图形模式
重启模式
关机模式
等等
看看运行级别
runlevel
systemctl get-default
切换运行级别
init 数字
设置默认级别:systemctl set-default
三、Linux系统Systemd
Linux系统启动的第一个进程systemd
centos6及之前是init
PC:~$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─apache2───2*[apache2───26*[{apache2}]]
├─avahi-daemon───avahi-daemon
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─apache2───2*[apache2───26*[{apache2}]]
├─avahi-daemon───avahi-daemon
为什么要用systemd
1.init是串行执行的,且脚本复杂,相关的管理命令很多,很杂
systemd就是为了解决init的问题设计的。
systemd的优势
1.开机并行启动,显著提高开机启动速度
2.自动解决启动间的服务依赖关系。
3.服务的启动配置文件统一语法,管理起来方便
4.systemd较好的解决了原有模式缺陷,比如原有service不会关闭程序产生的子进程。
5.从Debian9,Centos7,Ubuntu16等系统开始,都开始使用systemd来管理服务。
6.Centos7服务的启动停止不再使用脚本管理服务,也就是/etc/init.d下不再有脚本。
systemd相关路径
/usr/lib/systemd/system
相当于/etc/init.d(启动服务程序所在的路径)
/etc/systemd/system
/etc/rc.d(不同运行级别启动文件路径)
/etc/systemd/system/multi-user.target.wants
/etc/rc.d/rc3.d(3级别路径),文本模式
systemctl命令
服务启动,停止,重启
systemctl start
systemctl stop
systemctl restart
systemctl reload :重新加载配置
systemctl status
systemctl is-active :查看服务是否在运行。
systemctl stop
systemctl restart
systemctl reload :重新加载配置
systemctl status
systemctl is-active :查看服务是否在运行。
PC:/etc/systemd/system$ systemctl status sshd.service
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-15 10:13:19 CST; 3 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 960 (sshd)
Tasks: 1 (limit: 38181)
Memory: 8.8M
CGroup: /system.slice/ssh.service
└─960 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
4月 17 23:31:24 daidechao-PC sshd[1954244]: Accepted password for daidechao from 10.18.246.18 port 56643 ssh2
4月 17 23:31:24 daidechao-PC sshd[1954244]: pam_unix(sshd:session): session opened for user daidechao by (uid=0)
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-15 10:13:19 CST; 3 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 960 (sshd)
Tasks: 1 (limit: 38181)
Memory: 8.8M
CGroup: /system.slice/ssh.service
└─960 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
4月 17 23:31:24 daidechao-PC sshd[1954244]: Accepted password for daidechao from 10.18.246.18 port 56643 ssh2
4月 17 23:31:24 daidechao-PC sshd[1954244]: pam_unix(sshd:session): session opened for user daidechao by (uid=0)
开机自启动,不启动,查看各个级别下服务启动状态等常用命令
systemctl enable crond.service
设置开机自启动
原理,就是创建一个软链接
ln -s /usr/lib/systemd/system/crond /etc/systemd/system/multi-user.target.wants/crond.service
systemctl disable crond.service
开机不启动
systemctl list-unit-files
查看所有服务的开机自启动状态
systemctl is-enabled crond.service
查看特定服务是否为开机自启动
systemctl daemon-reload
重新载入更改的systemd配置文件
0 条评论
下一页