首页 > 其他分享 >day18_系统资源管理

day18_系统资源管理

时间:2024-02-13 19:23:21浏览次数:25  
标签:opt tmp log root 系统 ls 167 day18 资源管理

今日内容

  • 英文单词的认识,需要大家自己逐步锻炼了,以后适当的加在考试题中作为练习
  • 关于作业,昨日知识,以后大家就把不会的作业题,发在各自小组,我来课下解决

关于 后台符 & ,如何用,才是真的实现,安全,可靠的后台运行。
可以理解为,无论是用户正常注销登录如logout,如exit。
- 还是异常的网络问题,导致ssh断开
- 还是xshell突然的崩溃,导致ssh断开


第一种情况,用户执行完毕进行,正常退出ssh会话(logout,exit)。
- 命令直接 +  & 是没问题的,依然在后台运行(得到了验证,进程还在)
ping bilibili.com  > /dev/null  &  


- nohup + 命令 + & ,也是没问题,依然在后台运行 (得到了验证,进程还在)
nohup ping taobao.com   &


====================================================================================

第二种情况,用户非正常退出,导致后台进程可能会丢失(直接叉掉,xshell会话)
- 命令 +  &   ,这种就不可靠了进程会丢失。 (通过linux验证,进程的确丢了)
ping  jd.com  > /dev/null &

-  nohup  +  &   ,这种用法,靠谱,依然进程还在后台。(通过linux验证,进程不会丢失了)

逢3过游戏,恭喜玩家李文杰,陈亮亮,张少辉,赢得中午分享机会

linux资源管理篇

image-20220324093242857

理解数据流

6、理解linux的数据流

执行linux命令时,linux默认为用户进程提供了3种数据流

  • stdin
    • 标准输入、0
    • 一般是键盘输入数据
    • 比如cat命令等待用户输入
  • stdout
    • 标准输出、1
    • 程序执行结果,输出到终端
  • stderr
    • 标准错误输出,代号,2
    • 程序执行结果,输出到终端

标准输入重定向

[root@167 opt]# cat   <   /etc/passwd   # 输入重定向,原本是来自于终端的键盘输入,改为了,可以是来自于文件的输入

# 比如用在数据库的,数据导入
mysql <  /opt/back.sql 


详解重定向符号和数据流代号

image-20220324101949000

练习数据流

练习数据流
[root@167 opt]# 
[root@167 opt]# # stdin  stdout stderr
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# cat  
你好我是米老鼠
你好我是米老鼠
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# ls /opt
messages  nohup.out  passwd  t1.log
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# lllllllllllllllllllllll  /opt
bash: lllllllllllllllllllllll: 未找到命令...
[root@167 opt]# 


数据流代号,结合重定向
[root@167 opt]# # 数据流代号,结合重定向符号
[root@167 opt]# # stdout,结合 >  >>
[root@167 opt]# 
[root@167 opt]# ls /opt/  > /tmp/opt.log
[root@167 opt]# ls /opt/  > /tmp/opt.log
[root@167 opt]# ls /opt/  > /tmp/opt.log
[root@167 opt]# 
[root@167 opt]# cat -n /tmp/opt.log 
     1	messages
     2	nohup.out
     3	passwd
     4	t1.log
[root@167 opt]# 
[root@167 opt]# ls /opt/  >> /tmp/opt.log
[root@167 opt]# ls /opt/  >> /tmp/opt.log
[root@167 opt]# cat -n /tmp/opt.log 
     1	messages
     2	nohup.out
     3	passwd
     4	t1.log
     5	messages
     6	nohup.out
     7	passwd
     8	t1.log
     9	messages
    10	nohup.out
    11	passwd
    12	t1.log



[root@167 opt]# # stdout进行重定向 ,需要将stderr 改为stdout进行重定向
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# ls /oppppppppppppppppppppp   > /tmp/opt.log      2>&1
[root@167 opt]# ls /oppppppppppppppppppppp   > /tmp/opt.log      2>&1
[root@167 opt]# ls /oppppppppppppppppppppp   > /tmp/opt.log      2>&1
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# cat /tmp/opt.log 
ls: 无法访问/oppppppppppppppppppppp: 没有那个文件或目录
[root@167 opt]# ls /oppppppppppppppppppppp   >> /tmp/opt.log      2>&1
[root@167 opt]# ls /oppppppppppppppppppppp   >> /tmp/opt.log      2>&1
[root@167 opt]# ls /oppppppppppppppppppppp   >> /tmp/opt.log      2>&1
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# cat /tmp/opt.log 
ls: 无法访问/oppppppppppppppppppppp: 没有那个文件或目录
ls: 无法访问/oppppppppppppppppppppp: 没有那个文件或目录
ls: 无法访问/oppppppppppppppppppppp: 没有那个文件或目录
ls: 无法访问/oppppppppppppppppppppp: 没有那个文件或目录
[root@167 opt]# 
[root@167 opt]# 


[root@167 opt]# 
[root@167 opt]# lsllllllllllllllll  /opt  &>> /tmp/opt.log 
[root@167 opt]# lsllllllllllllllll  /opt  &>> /tmp/opt.log 
[root@167 opt]# lsllllllllllllllll  /opt  &>> /tmp/opt.log 
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# cat /tmp/opt.log 
bash: lsllllllllllllllll: 未找到命令...
bash: lsllllllllllllllll: 未找到命令...
bash: lsllllllllllllllll: 未找到命令...
bash: lsllllllllllllllll: 未找到命令...



对于stderr的处理,建议用2>&1,用的人最多.

理解stderr,转为stdout的过程

image-20220324103015480

linux资源管理

uptime命令

4核,最理想,最大化发挥作用是
4核,每一个核,都在干活中(讲究,高并发编程,说的就是,如何让你的代码,让所有cpu同时起来工作)
4个cpu,你的代码,只让一个cpu在干活




1.最理想化的状态是每个CPU都在运行着进程,充分让cpu工作起来,效率最大化,你得先看看你机器上有几个CPU(几个核,就是有几个cpu可以工作)。

# 发现是4核的
[root@yuchao-linux01 ~]# lscpu |grep -i '^cpu(s)'
CPU(s):                4

# 以及用top命令,按下数字1,查看几核。
top


2. 如何理解uptime看到的负载
分别是1、5、15分钟内的平均负载情况,表示是1~15分钟内CPU的负载变化情况。

1. 三个值如果差不多,表示系统很稳定的运行中,15分钟以内,CPU都没有很忙
2. 如果1分钟内的值,远大于15分钟的值,表示机器在1分钟内压力在直线上升
3. 如果1分钟内的值,小于15分钟的值,表示系统的负载正在下降中

查看当前机器是几核的cpu

[root@yuchao-linux01 ~]# lscpu |grep -i '^cpu(s)'
CPU(s):                4

通过cpu的文件,确定是几颗CPU

[root@yuchao-linux01 ~]# cat /proc/cpuinfo |grep 'core id' | sort |uniq|wc -l
2

stress压力测试命令

运行多进程,测试查看cpu压力

1.安装stress工具
yum install stress -y

2.使用stress命令,给机器进行压力测试,这个命令会让你的机器,cpu达到100%,以此实现最高压的环境
# --cpu 4 让4个c
stress --cpu 1  --timeout 600

free命令

[root@yuchao-linux01 ~]# free 
              total        used        free      shared  buff/cache   available
Mem:        7992344      117852     7528248       32580      346244     7569704
Swap:       2097148       32612     2064536
[root@yuchao-linux01 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           7805         115        7351          31         338        7392
Swap:          2047          31        2016
[root@yuchao-linux01 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        114M        7.2G         31M        338M        7.2G
Swap:          2.0G         31M        2.0G
[root@yuchao-linux01 ~]# 

解释,cache,缓存的概念

image-20220324114147833

解释buffer缓冲区的概念

image-20220324114541708

理解cache,缓存

image-20220324114817322

理解buffer缓冲

从采草莓,理解碎片化数据写入,buffer缓冲区的概念

image-20220324115028356

年轻时候,看过片吧,葫芦娃

总之,buffer是解决碎片化数据,分批次,写入到磁盘中的,用于加速数据写入的。

查看当前机器的,磁盘使用情况

image-20220324115730751

监控磁盘io动态

iotop命令

网络资源监控

网络端口查看

先理解网络是什么,你和对方网站通信

最终要的记住就是

  • ip地址,对应了tcp/ip协议的,ip地址号
  • 端口号,对应了应用层的 如80(伴随着http协议的服务,如nginx这样的网站服务)端口

image-20220324122330658

理解tcp和udp的区别

image-20220324122739486

netstat命令

network status,网络状态命令

命令:netstat

作用:查看网络连接状态

语法:netstat -tnlp



选项:

-t:表示只列出tcp 协议的连接;(你可以看到你的nginx的运行)

-n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示;(netsta默认会看到机器的主机名 -n 直接显示ip)

-l :表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接;(你的nginx是否监听了0.0.0.0:80)确认端口在运行中,等待客户来访问

-p:表示显示发起连接的进程pid 和进程名称; (显示使用该端口的进程的id号)

-u  :查看udp连接  (ntpd服务)

netstat -tunlp |grep nginx  

netstat -tunlp | grep ntp



ss命令

用法和netstat一模一样

ss -tunlp |grep nginx

备注

在高并发场景下,也就是机器的链接数特别多的时候,使用ss性能比netstat更高一些。

iftop

yum install iftop -y

用起来和top命令很像,动态的掌握服务器的流量情况

能够看到你机器,有多少流量进来,有多少流量出去


标签:opt,tmp,log,root,系统,ls,167,day18,资源管理
From: https://www.cnblogs.com/fuminer/p/18014750

相关文章

  • day14_系统服务管理
    day13作业1.如何查看系统所有环境变量,且过滤出与root相关的变量。系统全局的,本身内置的变量+用户的变量===系统全局的变量set2.如何查看⽤户个⼈的环境变量,且过滤出与root相关的变量。3.解释下PS1变量,以及如何修改使⽤PS1。请注意,linux是区分大小写的,PS1set设置变量......
  • 自用 NAS 折腾,在 PVE 上使用 9P 文件系统透传 ZFS
    目录基本原理配置方法第一步虚拟机开启9p支持第二步物理机准备共享目录第三步物理机在qemu.conf中添加第四步虚拟机/etc/modules添加9pnet_virtio:nochannelsavailablefordevice基本原理物理机配置共享文件夹,权限和虚拟机一致物理机修改虚拟机的qemuconfig,(在h......
  • STM32系统开发--基于LL库的多串口Printf使用
    MDK:Keilv5.38/STM32CubeMXMCU:STM32G431CBUx外设:串口USART1、2使用多串口Printf,基于C语言中的函数可变参数,首先要包含头文件"stdarg.h"。基于LL库,编写多串口打印函数:/************************************************函数名称:USART_Printf功能:多串口Printf函数......
  • 代码变更风险可视化系统建设与实践
    2023年09月22日 作者:桂来 文章链接 9054字 19分钟阅读1软件系统风险与变更变更是软件系统进化的推动力,同时也是孕育风险的温床。如果一个系统没有了相应的迭代和变更,那这个系统就会逐渐失去了活性和价值。不过,随着系统进行了变更迭代,软件风险也会慢慢衍生,而规避变更引......
  • Service Control Manager (SCM):Windows 自带的服务控制管理器(SCM)是一个命令行工具,用于
    ServiceControlManager(SCM):Windows自带的服务控制管理器(SCM)是一个命令行工具,用于安装、启动、停止、删除和查询系统中的服务。您可以使用sc命令来执行这些操作,以及查看服务的状态和配置。描述:    SC是用来与服务控制管理器和服务进行通信    的命令行程......
  • PowerShell 命令 ,用于安装、启动、停止、删除和查询系统中的服务
    PowerShell命令,用于安装、启动、停止、删除和查询系统中的服务:安装服务:powershellCopyCodeNew-Service-Name"ServiceName"-BinaryPathName"C:\Path\to\Service.exe"这个命令将在系统中安装一个名为"ServiceName"的新服务,并指定服务的可执行文件路径为"C:\Path\to\S......
  • Win10用资源管理器打开ftp站点跳转IE浏览器解决方法
    WindowsRegistryEditorVersion5.00[HKEY_CLASSES_ROOT\ftp]@="URL:FileTransferProtocol""EditFlags"=dword:00000002"ShellFolder"="{63da6ec0-2e98-11cf-8d82-444553540000}""SourceFilter"="{......
  • 【漏洞复现】用友NC-Cloud系统uploadChunk存在任意文件上传漏洞
    阅读须知花果山的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本......
  • 十一、Django url控制系统
    urlpatterns=[url(正则表达式,views视图函数,参数,别名),]匹配1、完全匹配urlpatterns=[url(r'^admin/',admin.site.urls),url(r'^showtime/',views.showtime),url(r'^blog/',include('blog.urls')),url(r'^logi......
  • 系统干崩了,只认代码不认人
    各位朋友听我一句劝,写代码提供方法给别人调用时,不管是内部系统调用,还是外部系统调用,还是被动触发调用(比如MQ消费、回调执行等),一定要加上必要的条件校验。千万别信某些同事说的这个条件肯定会传、肯定有值、肯定不为空等等。这不,临过年了我就被坑了一波,弄了个生产事故,年终奖基本是......