来自一位闷骚男善意的提醒:富文本编辑器用的时候木有自动保存功能,此时多希望我能ctrl+s保存一下。一旦在线上写了很长时间,结果一不小心手贱X掉了。那岂不是呜呼哀哉,想抽自己的心都有了。骚话不多说,还是说点有用的。chkconfig命令相信很多小伙伴肯定不会陌生吧。在你使用某个命令时,发现明明是正确的,为啥就是没结果,套你猴子。是不是被自己萌哭了,我经常自嘲大脑缺氧。这时chkconfig命令就起作用了,例如查询nginx服务是否启用:chkconfig --list | grep nginx。有时一个小小的细节,可能是你没能冷静下来思考导致的,当你烦躁时,不妨先静静。
****注意:****chkconfig命令是确认此命令是否启用,不是确定此服务是否安装。
rpm包安装查询:
1、查询nginx服务是否安装:rpm -qa | grep nginx
2、列出所有的rpm形式安装:rpm -qa
目录
前言
正文
一、进程管理
二、工作管理
三、系统资源查看
四、系统定时任务
尾声
正文
==
分篇目录直通车
:
一、进程管理
进程的查看:ps命令和top命令以及pstree命令,这几个命令还是很常用的,需要重点掌握。
首先讲讲ps命令的使用方法,下面给出例子和截图方便理解,最好自己动手试一试,学习嘛,就得理论+实践相结合,达到最佳效果。
ps aux 显示所有进程[一般配合grep使用],下面列出aux内容代表的含义:
-
-a 所有进程
-
-u 进程所属用户
-
-x 没有终端控制的进程
例如:ps aux | grep httpd 查看Apache进程,在这里说明一下,这样使用ps -aux(centos6中会报出一个提示,影响不大)当然也是可行的,不强求记住,linux里面大多数命令后面都接了“-”符号,CentOS7中使用加“-”是不会出现警告的。
ps aux | grep nginx 查看nginx进程
讲完了ps aux命令后,再接着看下命令:ps -le 表示显示所有进程(显示进程优先级),如下所示列出le的含义:
-
-l 以长格式显示进程
-
-e 显示所有进程
PS命令的输出内容以及作用:
内容 | 作用 |
USER | 该进程是由哪个用户产生的 |
PID | 进程的ID号 |
%CPU | 该进程占用CPU的百分比(占用越高越耗费资源) |
%MEM | 该进程占用物理内存的百分比(占用越高越耗费资源) |
VSZ | 该进程占用虚拟内存的大小(单位:KB) |
RSS | 该进程占用真实内存的大小(单位:KB) |
TTY | 该进程是在哪个终端运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6本地字符界面终端,tty7图形终端。 |
pts/0-255 | 代表虚拟终端。 |
学完了ps aux和ps -le,是不是觉得已经跃跃欲试了,迫不及待的想看看top命令的含义,客观别急,我们还得一步一步来,稳扎稳打才是王道。
top [选项],下面给出-d|-b|-n的含义:
-
-d 秒数:指定top命令每隔几秒刷新,默认3秒。
-
-b:使用批处理模式输出,一般和“-n”选项合用。
-
-n次数:指定top命令执行的次数, 一般和“-b”选项合用。
例如:top -b -n 1 > top.log 定向输出到top.log文件中,可以看到更多的信息
接着往下看,top命令的交互模式也挺实用的。
top 命令:[在top命令的交互模式可以执行的命令]
?或h | 显示交互模式的帮助 |
P | 以CPU使用率排序,默认为此项。 |
M | 以内存使用率排序 |
N | 以PID排序 |
q | 退出top |
top命令如下图所示5行,客官请看截图下面的表格,详细的列出了每行命令的含义
1.任务队列信息:这里列出重点load average ,表示系统平均负载,方便你判断系统的健康状态。
内容 | 含义 |
top - 21:03:58 | 系统时间 |
3:48 | 系统运行时长 |
2 users | 当前登录用户个数 |
load average 0.00, 0.00, 0.00 | 系统在之前1分钟,5分钟,15分钟的平均负载。一般小于1小时,负载小。如果大于1,系统已经超出负荷[重点] |
2.进程信息状态:关注重点0 zombie,僵尸进程。
内容 | 含义 |
Tasks: 92 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
91 sleeping | 休眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程,如果不是0,需要手工检查僵尸进程[重点] |
3.CPU信息:CPU这里也有一个需要关注的重点99.8%id,空闲CPU百分比,用于判断系统健康状态。
内容 | 含义 |
Cpu(s): 0.1%us | 用户模式占用CPU百分比 |
0.1%sy | 系统模式占用CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用CPU百分比 |
99.8%id | 空闲CPU百分比[重点] |
0.0%wa | 等待输入/输出占用CPU百分比 |
0.0%hi | 硬中断请求服务占用CPU百分比 |
0.0%si | 软中断请求占用CPU百分比 |
0.0%st | 虚拟时间百分比 |
4.内存信息:关注重点,空闲物理内存,内存占用越高,你的系统越卡,这时服务器负载压力会增加,就要考虑加内存了,或者其它业务需求,配置多台服务器集群。
内容 | 含义 |
Mem: 1918460k total | 物理内存总量,单位KB |
733684k used | 已使用物理内存 |
1184776k free | 空闲物理内存[重点] |
62880k buffers | 作为缓冲的内存数量 |
5.交换分区(Swap)信息:Swap分区不要觉得它占用了很多空间,就去调小,这样做是不对的,重点关注空闲交换分区大小。
内容 | 含义 |
Swap: 2064376k total | 交换分区(虚拟内存)的总大小 |
0k used | 已使用交互分区大小 |
2064376k free | 空闲交换分区大小[重点] |
153956k cached | 作为缓存的交互分区大小 |
上面了解了ps aux、ps -le以及top命令的用法,下面就讲讲,进程变为僵尸了,看如何处理,在win中通过任务管理器,linux下通过kill命令去找到进程对应的进程号,去干掉它。
杀死进程[注意:不到万不得已的情况下,不要轻易杀死进程],别整天天杀杀杀,我们不是一个杀手,而是一个系统管理员啊。
-
kill [进程ID]
-
kill -l 查看可用的进程信号
想要深入掌握kill命令,客官接着往下看,得了解一些常用的信号代表的意义,列出了部分信号的含义,方便使用:
信号代号 | 信号名称 | 说明 |
1 | SIGHUP | 让进程立即关闭,重新读取配置文件后重启. |
2 | SIGINT | 程序终止信号,终止前台进程,相当于快捷键ctrl+c. |
8 | SIGFPE | 发生致命的算术运算错误时发出,不仅包括浮点运算错误,还包括溢出及除数为0等其它所有的算术的错误. |
9 | SIGKILL | 立即结束程序的运行,本信号不能被阻塞、处理或忽略,一般用于强制终止进程. |
14 | SIGALRM | 时钟定时信号,alarm函数使用该信号. |
15 | SIGTERM | 正常结束进程的信号,kill命令默认信号.(假如进程已经发生问题,这个信号无法正常终止进程的,此时会尝试SIGKILL信号). |
18 | SIGCONT | 让暂停的进程恢复执行,不能被阻断. |
19 | SIGSTOP | 可以暂停前台进程,相当于快捷键ctrl+z,不能被阻断. |
例如:
-
kill -1 3033 重启进程
-
kill -9 3034 强制杀死进程
killall [选项][信号]后面必须接进程名
-
按进程名杀死进程
-
-i:交互式,询问是否要杀死某个进程
-
-I:忽略进程名的大小写
例如:
- killall -i -9 httpd 确认是否杀死apache进程
pkill [选项][信号]后面必须接进程名
-
按进程名杀死进程
-
-t终端号:按终端号踢出用户
例如:
- pkill -9 -t pts/1
-
修改进程的优先级
-
进程优先级简介:linux操作系统是一个多用户、多任务的操作系统,linux同时运行着非常多的进程。
-
CPU在同一个时钟周期内只运行一个指令。进程的优先级决定了每个进程处理的先后顺序。
注意:用户只能修改NI的值,不能直接修改PRI的值
修改NI时的注意事项:[一般不需要修改,了解就行],如下表格所示
PRI[priority]和NI[nice]这两个值都是优先级,数字越小,代表该进程优先级越高。 |
NI值范围:-20~19 |
普通用户可调整NI范围:0~19,而且只能调整自己的进程,只能调高,不能调低 |
例如:NI为0,只能调大于0 |
root用户才能设置NI的值为负值 |
nice [优先级] PID |
nice不能修改已经存在的进程的NI的优先级 |
renice [优先级] PID
-
修改已经存在的进程的NI的优先级
-
renice -5 3167
二、工作管理
1.简介:在单个登录终端中(登录的shell中)同时管理多个工作的行为。
2.注意事项如下表格:
当前登录终端只能管理当前终端的工作,不能管理其它登录终端的工作。 |
放入后台命令必须可持续运行一段时间,便于捕捉操作这个命令。 |
放入后台命令不能和前台用户有交互或许要前台输入,否则放入后台只能暂停,不能执行。 |
3.把进程放入后台:
-
tar -zcf [文件名] /usr/local/tools/ &
-
命令放入后台,并且在后台执行
top命令执行
- 使用ctrl+z命令快捷键,放入后台暂停,使用fg命令恢复到前台
4.jobs命令使用
例如:
-
jobs [-l]
-
-l:显示工作的PID
-
注意:“+”最后一个放入后台的工作,“-”倒数第二个放入后台的工作。
5.将暂停的工作恢复到前台执行
-
%工作号:%号可以省略,注意工作号和PID的区别
-
工作号是指下图箭头所示的1,2数字:
fg %工作号
参数:
- fg 1 将top命令恢复到前台
6.将暂停的工作恢复到后台执行[注意:top和vi命令是不可以的]
- bg %工作号
注意:后台恢复执行的命令不能和前台有交互,否则不能恢复到后台执行。
7.后台命令脱离终端
后台命令脱离登录终端执行的方法:
1.把需要后台执行的命令加入/etc/rc.local文件中[推荐使用] |
2.使用系统定时任务,让系统在指定时间执行某个后台命令 |
3.使用nohup命令[推荐使用] |
-
例如[此时是想到自己之前看RocketMQ官方文档时还不理解nohup这个命令]:
-
RocketMQ启动Broker服务时,先启动mqnamesrv服务放入后台:nohup sh mqnamesrv &
-
当然也可以自己写个脚本做个测试
开启两个远程终端时可以看到for.sh脚本在运行如下图:
关闭一个远程终端时也可以看到for.sh脚本在运行如下图:
三、系统资源查看
首先看下buff[缓冲]和cache[缓存]区别:
buff[缓冲] | 加速数据写入硬盘 |
cache[缓存] | 加速数据从硬盘读取 |
vmstat [刷新延时,刷新次数][重点] 查看系统的健康状态
例如下图:
每个字段的含义如下表格:
process:进程信息字段 | menory:内存信息字段 | system:系统信息字段 | cpu:cpu信息字段 |
-r:等待运行的进程数,数量越大,系统越繁忙 | -swpd:虚拟内存使用情况(单位:KB) | -in:每秒中断的进程次数 | -us:非内核进程消耗cpu运算时间百分比 |
-b:不可被唤醒的进程数量,数量越大,系统越繁忙 | -free:空余内存容量(单位:KB) | -cs:每秒进行的时间切换次数。 | sy:内核进程消耗cpu运算时间百分比 |
-buff:缓冲内存容量(单位:KB) | -in和-cs这两数越大,系统与连接设备通信非常繁忙。 | -id:空闲cpu百分比[重点] | |
-cache:缓存内存容量(单位:KB) | -st:被虚拟机所盗用的cpu百分比 |
开机时内核检测信息:
- dmesg命令
例如:
查看CPU信息:dmesg | grep CPU
free命令查看内存使用状态
- free[-b|-k|-m|-g]
选项如下表格所示:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/b6e18dcb0d264f2b700c00a0bea8001b.jpeg)
最后
分布式技术专题+面试解析+相关的手写和学习的笔记pdf
还有更多Java笔记分享如下:
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
]
[外链图片转存中…(img-x3NfCAeU-1712078087755)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/b6e18dcb0d264f2b700c00a0bea8001b.jpeg)
最后
分布式技术专题+面试解析+相关的手写和学习的笔记pdf
还有更多Java笔记分享如下:
[外链图片转存中…(img-h85xDiAv-1712078087755)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!