Linux之嫁衣神功

前言:此博客内容全部转载他人,无一原创,初衷转播优质内容

1 挂载的作用

扩展存储空间

将额外的存储设备连接到Linux系统中,扩展系统的存储容量。

实现数据共享

不同计算机之间可以共享文件和数据,实现更高效的协作工作。

实现备份和恢复

将备份介质挂载到系统中,通过简单的复制和黏贴操作实现文件的恢复。

管理移动设备

将电子设备挂载到系统上,从设备中进行管理。

实现文件系统的更换

保留现有文件和目录的完整性,更换更合适的文件系统。

2 家目录的作用

2.1存储用户文件

家目录为每个用户提供了一个统一的地方来存储其个人文件和目录,如个人的主页、电子邮件、文档、图像、音乐、视频等。

2.2管理用户权限

家目录保证了数据的安全性,用户只能访问自己的家目录,而无法访问其他用户的家目录。用户还可以在家目录中设置文件和目录的权限。

2.3存储系统备份

家目录可以用来作为系统备份的存储位置,用户可以将自己的文件备份到一个独立的目录中,以免在系统故障或者其他不可预测的情况下导致数据的丢失

2.4 什么样的命令可以补全,那么什么样的又不可以?

①做软连接

②找中间人演练

3 检测并确认新硬盘

fdisk

查看或管理硬盘分区

fdisk -l(小写的L) (硬盘设备)  或  fdisk  硬盘设备

实际操作

fdisk查询结果详解

Device:分区的设备文件名称

Boot:是否是引导分区,是的话则有“ * ”标识

Start:该分区在硬盘中的起始位置(柱面数)

End:该分区在硬盘中的结束位置(柱面数)

Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节

ld:分区对应的系统ID号,83表示Linux中的默认分区(XFS或EXT4),8e标识LVM逻辑卷

System:分区系统

fdisk命令交互模式中指令

 lsblk参数

df命令  使用权限是所有用户

  fstab添加字段分析

第1字段:设备名或设备卷标明

第2字段:文件系统的挂载点目录的位置

第3字段:文件系统类型,如xfs、swap等

第4字段:挂载参数,即mount命令中“ -o ”选项后可使用的参数。例如,defaults(默认参数)、rw(可读可写)、ro(只读)、noxec(禁用执行程序)

第5字段:表示文件系统是否需要dumo备份(dump是一个备份工具)。一般设置为1时表示,设为0时将被dump忽略

第6字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查, 1表示优先检查,2表示其次检查

磁盘配额

1 定义

当一个磁盘空间被多个用户使用时,为了公平,防止某些用户占用过多的空间,我们就需要对磁盘进行配额管理,对可用存储空间进行限制。

2 Linux磁盘配额管理

Linux系统磁盘配额管理只能针对整个文件系统设置,即该磁盘分区的所有目录或者文件受配额限制,不能针对某个目录进行配额限制。同时Linux系统的磁盘配额功能可以针对用户,也可以针对组设置,在Linux系统中root用户不受配额限制,也就是说Linux系统上的磁盘配额管理只针对普通用户和组有效。

3 Linux系统上磁盘配额限制方式

磁盘容量限制:通过限制用户或者组使用的磁盘空间大小

文件数量限制:通过iNode索引节点数限制用户或者组使用空间大小

4 实现磁盘配额的条件

需要Linux内核支持

安装xfsprogs与quota软件包

5 Linux磁盘配额的特点

作用范围:针对指定的文件系统(分区)

限制对象:用户账号、组账号

限制类型:磁盘容量、文件数量

限制方法:软限制、硬限制

linux系统优化、安全加固

1 基础优化

更新yum官方源

关闭不需要的服务

关闭不需要的TTY

对TCP/IP网络参数进行调整。例如:优化Linux下的内核TCP参数以提高系统性能

设置时间同步

优化最大文件数限制

关闭SELINUX

修改SSH登录配置

清理登录时的时候显示的系统及内核版本

删除不必要的系统用户和群组

关闭重启ctl-alt-delete组合键

设置一些全局变量

设置history历史记录

Centos6.4最小化安装后启动网卡

添加普通用户,设置sudo权限

禁止root远程用户登录

sed修改远程端口

防火墙iptables配置

修改默认DNS

安装必要软件,更新yum源(epel源)

更新内核和软件到最新版本

去除上次登录的信息

2.安全加固

初始化环境后需要做的安全工作

添加普通用户登录,禁止root用户登录,更改SSH端口号。(修改SSH端口不一定绝对,当然如果暴露在外网,建议改下)

服务器使用密钥登录,禁止密码登录

开启防火墙,关闭SElinux,根据业务需求设置响应的防火墙规则

安装fail2ban这种防止SSH暴力破解密码的软件

设置只允许公司办公网出口IP能登录服务器(看公司实际需要)也可以安装VPN等软件,只需要连接VPN到服务器上

修改历史命令记录条数为10条

只允许有需要的服务器可以访问外网,其他全部禁止

做好软件层面的防护(设置nginx_waf模块防止SQL注入;把Web服务使用www用户启动,更改网站目录的所有者和所属组为www)

内存分析工具包含的性能指标

如何迅速分析内存的性能瓶颈

通常先运行几个覆盖面比较大的性能工具,如 free,top,vmstat,pidstat 等

先用 free 和 top 查看系统整体内存使用情况

再用 vmstat 和 pidstat,查看一段时间的趋势,从而判断内存问题的类型

最后进行详细分析,比如内存分配分析,缓存/缓冲区分析,具体进程的内存使用分析等

常见的优化思路:

最好禁止 Swap,若必须开启则尽量降低 swappiness 的值

减少内存的动态分配,如可以用内存池,HugePage 等

尽量使用缓存和缓冲区来访问数据。如用堆栈明确声明内存空间来存储需要缓存的数据,或者用 Redis 外部缓存组件来优化数据的访问

cgroups 等方式来限制进程的内存使用情况,确保系统内存不被异常进程耗尽

/proc/pid/oom_adj 调整核心应用的 oom_score,保证即使内存紧张核心应用也不会被OOM杀死

内存性能工具

根据不同的性能指标来找合适的工具:

CPU优化

应用程序优化

编译器优化:编译阶段开启优化选项,如gcc -O2

算法优化

异步处理:避免程序因为等待某个资源而一直阻塞,提升程序的并发处理能力。(将轮询替换为事件通知)

多线程代替多进程:减少上下文切换成本

善用缓存:加快程序处理速度

系统优化

CPU绑定:将进程绑定要1个/多个CPU上,提高CPU缓存命中率,减少CPU调度带来的上下文切换

CPU独占:CPU亲和性机制来分配进程

优先级调整:使用nice适当降低非核心应用的优先级

为进程设置资源显示: cgroups设置使用上限,防止由某个应用自身问题耗尽系统资源

NUMA优化: CPU尽可能访问本地内存

中断负载均衡: irpbalance,将中断处理过程自动负载均衡到各个CPU上

TPS、QPS、系统吞吐量的区别和理解

QPS(TPS)

并发数

响应时间

QPS(TPS)=并发数/平均相应时间

用户请求服务器

服务器内部处理

服务器返回给客户
QPS 类似 TPS,但是对于一个页面的访问形成一个 TPS,但是一次页面请求可能包含多次对服务器的请求,可能计入多次 QPS

QPS(Queries Per Second)每秒查询率,一台服务器每秒能够响应的查询次数.

TPS(Transactions Per Second)每秒事务数,软件测试的结果.

如何查看内存使用情况

free来查看整个系统的内存使用情况

top/ps来查看某个进程的内存使用情况

VIRT 进程的虚拟内存大小

RES 常驻内存的大小,即进程实际使用的物理内存大小,不包括swap和共享内存

SHR 共享内存大小,与其他进程共享的内存,加载的动态链接库以及程序代码段

%MEM 进程使用物理内存占系统总内存的百分比

怎样理解内存中的Buffer和Cache?

buffer是对磁盘数据的缓存,cache是对文件数据的缓存,它们既会用在读请求也会用在写请求中

 根据不同的性能指标来找合适的工具:

cpu 

针对应用程序,我们通常关注的是内核CPU调度器功能和性能。

线程的状态分析主要是分析线程的时间用在什么地方,而线程状态的分类一般分为:

① on-CPU:执行中,执行中的时间通常又分为用户态时间 user 和系统态时间 sys

② off-CPU:等待下一轮上CPU,或者等待I/O、锁、换页等等,其状态可以细分为可执行、匿名换页、睡眠、锁、空闲等状态。

如果大量时间花在CPU上,对CPU的剖析能够迅速解释原因;如果系统时间大量处于 off-cpu 状态,定位问题就会费时很多。但是仍然需要清楚一些概念:

处理器

硬件线程

CPU内存缓存

时钟频率

每指令周期数CPI和每周期指令数IPC

CPU指令

使用率

用户时间/内核时间

调度器

运行队列

抢占

多进程

多线程

字长

分析工具:

注意:

  • uptime,vmstat,mpstat,top,pidstat 只能查询到 cpu 及负载的的使用情况。

  • perf 可以跟着到进程内部具体函数耗时情况,并且可以指定内核函数进行统计

#查看系统cpu使用情况
top#查看所有cpu核信息
mpstat -P ALL 1#查看cpu使用情况以及平均负载
vmstat 1#进程cpu的统计信息
pidstat -u 1 -p pid#跟踪进程内部函数级cpu使用情况
perf top -p pid -e cpu-clock

内存

内存是为提高效率而生,实际分析问题的时候,内存出现问题可能不只是影响性能,而是影响服务或者引起其他问题。同样对于内存有些概念需要清楚:

主存

虚拟内存

常驻内存

地址空间

OOM

页缓存

缺页

换页

交换空间

交换

用户分配器libc、glibc、libmalloc和mtmalloc

LINUX内核级SLUB分配器

分析工具:

说明:

  • free,vmstat,top,pidstat,pmap 只能统计内存信息以及进程的内存使用情况。

  • valgrind 可以分析内存泄漏问题。

  • dtrace 动态跟踪,需要对内核函数有很深入的了解,通过D语言编写脚本完成跟踪。

#查看系统内存使用情况
free -m#虚拟内存统计信息
vmstat 1#查看系统内存情况
top# 1s采集周期,获取内存的统计信息
pidstat -p pid -r 1#查看进程的内存映像信息
pmap -d pid#检测程序内存问题
valgrind --tool=memcheck --leak-check=full --log-file=./log.txt  ./程序名

磁盘IO

磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。访问硬盘和访问内存之间的速度差别是以数量级来计算的,就像1天和1分钟的差别一样。要监测 IO 性能,有必要了解一下基本原理和 Linux 是如何处理硬盘和内存之间的 IO 的。

在理解磁盘IO之前,同样我们需要理解一些概念,例如:

文件系统

VFS

文件系统缓存

页缓存page cache

缓冲区高速缓存buffer cache

目录缓存

inode

inode缓存

noop调用策略

分析工具:

#查看系统io信息
iotop#统计io详细信息
iostat -d -x -k 1 10#查看进程级io的信息
pidstat -d 1 -p  pid#查看系统IO的请求,比如可以在发现系统IO异常时,可以使用该命令进行调查,就能指定到底是什么原因导致的IO异常
perf record -e block:block_rq_issue -agperf report

 

#显示网络统计信息
netstat -s#显示当前UDP连接状况
netstat -nu#显示UDP端口号的使用情况
netstat -apu#统计机器中网络连接各个状态个数
netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'#显示TCP连接
ss -t -a#显示sockets摘要信息
ss -s#显示所有udp sockets
ss -u -a#tcp,etcp状态
sar -n TCP,ETCP 1#查看网络IO
sar -n DEV 1#抓包以包为单位进行输出
tcpdump -i eth1 host 192.168.1.1 and port 80 #抓包以流为单位显示数据内容
tcpflow -cp host 192.168.1.1

 系统负载

Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing)简单的说是进程队列的长度。Load Average 就是一段时间(1分钟、5分钟、15分钟)内平均Load。

#查看负载情况
uptimetopvmstat#统计系统调用耗时情况
strace -c -p pid#跟踪指定的系统操作例如epoll_wait
strace -T -e epoll_wait -p pid#查看内核日志信息
dmesg

 偷鸡必成,不掉米

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/267224.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强大!信息安全技术导图全汇总!共200多张(附下载)

从网络上搜集整理了200多张信息安全技术导图,文末有免费领取方式。 详细文件目录 APT 攻击/ APT 攻击.png APT攻防指南基本思路v1.0-SecQuan.png Red Teaming Mind Map.png Windows常见持久控制.png 发现与影响评估.jpg …

Unity的相机跟随和第三人称视角

Unity相机跟随和第三人称视角 介绍镜头视角跟随人物方向进行旋转的镜头视角固定球和人的镜头视角 思路跟随人物方向进行旋转的镜头视角固定球和人的镜头视角 镜头旋转代码人物移动的参考代码注意 介绍 最近足球项目的镜头在做改动,观察了一下实况足球的视角&#x…

html基本标签

<h1></h1> <p></p> h是标签从h1~h6&#xff0c;没用h7,h8 p是段落 <a href"https://www.educoder.net">Educoder平台</a> href可以指定链接进行跳转 <img src"https://www.educoder.net/attachments/download/2078…

跨境知识分享:什么是动态IP?和静态IP有什么区别?

对于我们跨境人来说&#xff0c;清楚地了解IP地址、代理IP等这些基础知识&#xff0c;并学会正确地使用IP地址对于保障店铺的安全性和稳定性至关重要&#xff0c;尤其是理解动态IP和静态IP之间的区别&#xff0c;以及如何利用这些知识来防止账号关联&#xff0c;对于每个电商卖…

深入理解分库、分表、分库分表

前言 分库分表&#xff0c;是企业里面比较常见的针对高并发、数据量大的场景下的一种技术优化方案&#xff0c;所谓"分库分表"&#xff0c;根本就不是一件事儿&#xff0c;而是三件事儿&#xff0c;他们要解决的问题也都不一样&#xff0c;这三个事儿分别是"只…

Nodejs 第四十二章(jwt)

什么是jwt? JWT&#xff08;JSON Web Token&#xff09;是一种开放的标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络应用间传递信息的一种方式。它是一种基于JSON的安全令牌&#xff0c;用于在客户端和服务器之间传输信息。 https://jwt.io/ JWT由三部分组成&…

Qt 自定义长条进度条(类似播放器进度条)

1.运行界面 2.步骤 其实很简单。 2.1绘制底图圆角矩形 2.2绘制播放进度圆角矩形 参考&#xff1a;painter绘图 3.源码 #pragma once#include <QWidget> #include <QLabel> #include <QHBoxLayout> #include <QMouseEvent> #include <QDebug&g…

探索Redis 6.0的新特性

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存中数据结构存储系统&#xff0c;通常被用作缓存、消息队列和实时数据处理等场景。它的简单性、高性能以及丰富的数据结构支持使其成为了众多开发者和企业的首选。在Redis 6.0版本中&#xff0c;引入了一…

NVMe开发——PCIe复位

简介 PCIe中有4种复位机制&#xff0c;早期的3种被称为传统复位(Conventional Reset)。传统复位中的前2种又称为基本复位(Fundamental Resets)&#xff0c;分别为冷复位(Cold Reset)&#xff0c;暖复位(Warm Reset)。第3种复位为热复位(Hot Reset)。第4种复位被称为功能级复位…

SQL面试题(2)

第一题 创建trade_orders表: create table `trade_orders`( `trade_id` varchar(255) NULL DEFAULT NULL, `uers_id` varchar(255), `trade_fee` int(20), `product_id` varchar(255), `time` varchar(255) )ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_…

【机器学习基础】层次聚类-BIRCH聚类

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;相对完整的机器学习基础教学&#xff01; ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战…

如何将视频的声音转换成音频?视频提取音频的小妙招

在数字化时代&#xff0c;视频和音频是我们生活中不可或缺的元素。有时候&#xff0c;我们可能只需要视频中的音频部分&#xff0c;这时就需要将视频的声音转换成音频文件。那么&#xff0c;如何实现这一操作呢&#xff1f;本文将为您介绍几种简单而实用的小妙招。 方法一&…

朱元璋如何处理十万女俘让蒙古人险些灭绝

明太祖朱元璋的铁血手腕&#xff1a;十万女俘与蒙古人的灭顶之灾 在中国历史上&#xff0c;明太祖朱元璋以其卓越的领导才能和深谋远虑的政治智慧&#xff0c;开创了明朝的辉煌篇章。然而&#xff0c;在他登基称帝的背后&#xff0c;却隐藏着一段鲜为人知的残酷往事。今天&…

抽象类、模板方法模式

抽象类概述 在Java中abstract是抽象的意思&#xff0c;如果一个类中的某个方法的具体实现不能确定&#xff0c;就可以申明成abstract修饰的抽象方法&#xff08;不能写方法体了&#xff09;&#xff0c;这个类必须用abstract修饰&#xff0c;被称为抽象类。 抽象方法定义&…

202435读书笔记|《半小时漫画中国史》——读点经济学与历史,生活更美好,趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有

202435读书笔记|《半小时漫画中国史》——读点经济学与历史&#xff0c;生活更美好&#xff0c;趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有 1. 土地政策、度量衡及税收2. 商鞅变法3. 西汉经济4. 西汉盐铁大辩论5. 西汉丝绸之路 《半小时漫画中国史&#xff1a;经济…

Day09:基础入门-算法逆向散列对称非对称JS源码逆向AESDESRSASHA

目录 算法加密-概念&分类&类型 加密解密-识别特征&解密条件 解密实例-密文存储&数据传输 思维导图 章节知识点&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令&am…

2024年2月最新微信域名检测拦截接口源码

这段PHP代码用于检测指定域名列表中的域名是否被封。代码首先定义了一个包含待检测域名的数组 $domainList&#xff0c;然后遍历该数组&#xff0c;对每个域名发送HTTP请求并检查响应内容以判断域名是否被封。 具体步骤如下&#xff1a; 1. 定义待检测的域名列表。 2. 遍历域名…

将法律条文很美观的复制到word上

前言 目前很多法律条款都没有现成的PDF或者word格式的供大家下载&#xff0c;这个时候呢&#xff0c;领导又要求你帮他搞定&#xff0c;这就很。。。。 步骤 复制全部条款到word中使用wps的排版功能&#xff0c;将空格和空段落全部移除 3. 设置好你需要的格式 标题&#xff…

python毕设选题 - 大数据商城人流数据分析与可视化 - python 大数据分析

文章目录 0 前言课题背景分析方法与过程初步分析&#xff1a;总体流程&#xff1a;1.数据探索分析2.数据预处理3.构建模型 总结 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到…

Flink SQL 中的流式概念:状态算子

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…