![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 58
summer_west_fish
本科毕业深圳大学,拥有Java开发10年的经验。 拥有Devops、敏捷和项目管理多年的经验,并且获得PMP、ACP和DOP等相关证书。
展开
-
Linux inode
inode是Linux文件系统中的关键组成部分,它帮助操作系统管理和组织文件和目录的信息,确保文件的完整性和一致性。通过扩展inode的数量,可以支持更多的文件和目录,从而实现文件系统的扩展。:文件的内容或目录的条目存储在数据块中。inode中的指针可以指向这些数据块,从而建立文件或目录项与其数据之间的关联。在Linux中,inode是索引节点(index node)的简称,它是文件系统中的一个重要概念。每个文件和目录在磁盘上都有一个与之对应的inode,其中包含有关文件或目录的重要信息。原创 2024-02-04 21:48:01 · 221 阅读 · 0 评论 -
net.ipv4.ip_forward
net.ipv4.ip_forward 是 Linux 内核中的一个参数,用于控制 IP 转发功能。IP 转发是指在一个路由器或者网络设备上接收到一个 IP 数据包后,根据目标 IP 地址的路由信息将数据包发送到合适的接口,使其能够到达目标主机。启用 IP 转发功能后,Linux 系统将能够实现路由转发功能,将数据包从一个网络接口转发到另一个网络接口。在 Linux 中,net.ipv4.ip_forward 的默认值通常是 0,表示禁止 IP 转发。原创 2024-01-17 09:41:15 · 1966 阅读 · 0 评论 -
银行家算法/Banker‘s Algorithm
每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,银行则根据客户的最大需求量和系统当前的可用资源量来决定是否满足客户的请求。如果客户的请求不会导致银行离开安全状态,则会分配现金,否则客户必须等到其他客户存款足够。银行家算法(Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法,由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。否则,该进程将一直等待,直到资源可用。通过这种方式,银行家算法可以有效地避免死锁情况的出现,确保系统的安全运行。原创 2024-01-14 10:58:15 · 425 阅读 · 0 评论 -
Linux沙箱技术
在Linux系统中,由于其开放源代码和广泛应用的特点,安全性成为了一个关键问题。为了确保系统的安全性,研究者们提出了许多解决方案,其中之一就是进程沙箱隔离。进程沙箱隔离是一种将应用程序与底层操作系统隔离开来的技术。通过将应用程序运行在一个受限的环境中,可以有效地防止恶意软件或有害程序对系统的攻击和破坏。进程沙箱隔离主要依靠操作系统的安全机制来实现。在Linux系统中,可以利用命名空间(namespace)和 控制组(cgroup)等功能来构建进程沙箱。原创 2023-12-01 10:03:37 · 1053 阅读 · 0 评论 -
Linux Control Cgroups
无论 Docker 如何进行隔离,无法否认的是我们在当前宿主机中运行的所有容器,它依赖的硬件资源都只是当前机器。其实启动的每一个容器进程,它本身其实就是当前宿主机的进程之一,那么本质上来说,它也会和宿主机中的其他进程进行资源的竞争。原创 2023-11-16 16:09:51 · 143 阅读 · 0 评论 -
Linux - Namespace
Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。Linux 内核出现 namespace 的一个主要目的就是实现轻量级虚拟化(容器)服务。在同一个 namespace 下的进程可以感知彼此的变化,而对外界的进程一无所知,从而达到隔离的目的。原创 2023-11-16 12:14:25 · 1154 阅读 · 0 评论 -
kill -9 关闭程序
kill可将指定的信息送至程序。程序或工作的编号可利用ps指令或jobs指令查看(这段话来自菜鸟教程)。讲的这个复杂,简单点来说就是用来杀死linux中的进程。我相信很多人都用过这个命令,彻底杀死进程的意思,一般情况我们使用它没有上面问题,但是在我们项目中使用它就有可能存在致命的问题。原创 2023-11-13 09:21:17 · 83 阅读 · 0 评论 -
Linux命令 - tail、head、cat、sed、grep、more、less
Linux查看文件内容的命令有多种: tai、head、cat、sed、grep、more、less等。原创 2023-09-25 14:47:48 · 1195 阅读 · 0 评论 -
Linux 查看进程和线程
在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。你可以用 ps -eLf |grep XXX 来查看程序运行所产生的线程情况;也可以用 ps axms | grep XXX;原创 2023-09-17 10:24:51 · 1048 阅读 · 0 评论 -
Linux总线
总线的原理是通过定义一组规范和接口,将相似类型的设备归类并提供统一的访问方式。设备驱动程序可以通过总线接口来发现、注册和控制设备,以及与设备进行数据交换。1. 统一接口:通过总线,不同类型的设备可以使用相同的接口进行访问,简化了设备的管理和驱动程序的开发。2. 热插拔支持:总线可以支持设备的热插拔,即在运行时插入或拔出设备而无需重新启动系统。3. 设备发现:总线提供了设备发现机制,可以自动识别和注册连接到总线上的设备。原创 2023-06-01 11:52:38 · 1585 阅读 · 0 评论 -
数据库-分布式事务
1. 应用程序作为Seata的客户端,通过Seata提供的API启动全局事务,并获取一个全局事务ID。2. 在事务执行期间,应用程序将所有涉及的数据库操作标记为分支事务(Branch Transaction),并将分支事务与全局事务关联。3. Seata的协调器负责协调全局事务和各个分支事务的执行。4. 在事务提交阶段,应用程序调用Seata的提交接口,协调器向所有分支事务发送提交请求,并等待分支事务的响应。5. 如果所有分支事务都提交成功,协调器发送全局提交请求;原创 2023-06-01 11:27:35 · 991 阅读 · 0 评论 -
Linux非阻塞IO
非阻塞IO(Non-blocking IO)是一种IO模型,用于实现异步IO操作,使应用程序能够在等待IO操作完成的同时继续执行其他任务。在传统的阻塞IO模型中,当应用程序发起一个IO操作(如读取或写入数据),它会被阻塞,直到操作完成。而非阻塞IO模型中,应用程序可以通过非阻塞IO接口发起一个IO操作,并立即返回,不会被阻塞。应用程序可以继续执行其他任务,并定期轮询(或通过事件通知)来检查IO操作是否已完成。原创 2023-06-01 11:01:12 · 710 阅读 · 0 评论 -
Linux多Reactor多线程网络模型
3. Node.js:Node.js是一个基于事件驱动的JavaScript运行环境,采用单线程事件循环模型,但通过使用多个工作线程和事件驱动的方式来处理并发请求,实现高性能的网络应用。2. Netty:Netty是一个基于Java的异步事件驱动网络框架,支持多种协议和传输方式,并使用多Reactor多线程模型来实现高性能的网络通信。这些中间件和框架利用多Reactor多线程模型的特性,能够高效地处理大规模并发请求,提供快速响应和高并发能力的网络服务。原创 2023-06-01 10:42:00 · 746 阅读 · 0 评论 -
Linux零拷贝
例如,可以使用零拷贝将数据从磁盘直接传输到查询结果的内存缓存中,减少数据的复制操作和提高查询性能。使用零拷贝的主要目的是提高数据传输的性能和效率。通过减少数据的拷贝次数和数据移动,可以降低CPU和内存的消耗,减少数据传输的延迟,并提高系统的整体吞吐量。1. TCP/IP协议栈:零拷贝技术被广泛应用于网络数据传输中,例如在发送数据时,可以使用零拷贝将数据直接从用户空间传输到网络设备,提高网络传输性能。需要注意的是,零拷贝技术的实现需要操作系统和硬件的支持,而且它并不适用于所有的场景。原创 2023-06-01 10:13:37 · 1015 阅读 · 0 评论 -
Linux顺序写
特别是当数据的写入顺序是已知的,并且没有频繁的随机写入操作时,顺序写是一个高效的选择。在顺序写中,数据被顺序地写入磁盘的连续位置,而不是随机地写入不同位置。需要注意的是,顺序写不适用于频繁的随机写入或读写混合的场景。在这些情况下,随机写入的方式可能更适合,因为随机写入可以更灵活地处理数据的更新和插入操作。对于使用固态硬盘(SSD)等闪存存储介质的情况,顺序写也可以减少闪存的擦写次数,延长其寿命。这种顺序写的方式可以最大程度地利用存储介质的带宽和缓存,从而提高写入性能。顺序写的主要优势在于其高效的写入速度。原创 2023-06-01 10:06:05 · 301 阅读 · 0 评论 -
Linux PageCache
PageCache的原理是基于磁盘访问的局部性原理。当应用程序需要读取文件时,操作系统会将文件的内容分割成固定大小的页面(通常为4KB),然后将这些页面缓存到内存中的Pagecache中。当应用程序再次需要访问同一文件时,操作系统可以直接从内存中的Pagecache中读取数据,而无需再次访问磁盘,从而显著提高了读取文件的速度。由于磁盘访问通常是较慢的操作,而内存的读取速度要快得多,通过将频繁访问的文件数据缓存到内存中,可以大大减少对磁盘的访问需求,从而提高系统的整体性能和响应速度。原创 2023-06-01 09:57:42 · 255 阅读 · 0 评论 -
VMotion 技术
4. 容错和故障恢复:VMotion 可以将虚拟机从一个物理服务器快速迁移到另一个物理服务器,以实现对物理服务器故障的快速响应和虚拟机的高可用性,从而提高系统的容错性和故障恢复能力。2. 资源优化和负载均衡:VMotion 可以根据实时资源使用情况,在不同的物理服务器之间动态分配虚拟机,从而实现资源的最优化利用和负载均衡,提高整体系统的性能和可靠性。1. 零宕机迁移:VMotion 可以在虚拟机运行的同时将其迁移到不同的物理服务器上,无需中断虚拟机的运行,实现对虚拟机的实时迁移。原创 2023-05-17 14:32:57 · 711 阅读 · 0 评论 -
Linux 文件描述符fd(file desrciption)
在 类Unix操作系统 上,普遍将操作系统上的资源抽象成文件这一概念,诸如硬件设备、普通文件、scoket套接字、可移动存储等介质都被抽象为文件。那么,「文件描述符」 和 「文件」 之前有什么关系呢?首先,来看看 「文件描述符」是怎么出现的?打开文件表实际上,通过 内核 返回的文件描述符正是打开文件表中该文件的索引记录,是一个非负整数。文件描述符 通常从 3 开始记录。在Linux操作系统上,每个进程都有三个标准的 「POSIX」文件描述符,对应三个标准流,按照索引以 0 开始,分别是。原创 2023-05-10 09:51:06 · 700 阅读 · 0 评论 -
Linux命令 - du df
1:用户删除了大量的文件后,du命令就不会在文件系统目录中统计这些文件。如果此时还在运行中的进程持有这个已经被删除的文件句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改,df命令仍会统计这个被删除的文件。2:Linux系统磁盘分区有保留区的概念,会给root或指定用户预留5%或更大的空间,当使用到这块保留区的空间时,fdisk命令的计算将会是负数。4:如果某个正在运行的进程进行io的文件被删除,du不会统计,但因为对应的句柄未释放,文件系统中仍有此句柄,df仍会有对应的统计;原创 2023-05-08 09:39:40 · 112 阅读 · 0 评论 -
Linux命令 - ps ef和ps aux的区别及格式详解
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)D //无法中断的休眠状态(通常 IO 的进程);VSZ //该进程使用的虚拟內存量(KB)TIME //该进程实际使用CPU运行的时间。C //进程占用CPU的百分比。s //进程的领导者(在它之下有子进程);%CPU //进程占用的CPU百分比。X //死掉的进程 (基本很少见);PID //进程的ID。原创 2023-03-27 15:30:16 · 1849 阅读 · 0 评论 -
Linux根据时间批量删除文件
Linux根据时间批量删除文件当遇到很多日志文件时,想要清理部分日志,但是一个一个清理太过麻烦。所以希望通过从文件时间上做逻辑判断,实现把某一时间之前的文件删除。原创 2023-03-12 12:43:56 · 3665 阅读 · 0 评论 -
Linux环境变量设置
Linux环境变量设置原创 2023-01-30 17:37:03 · 1769 阅读 · 0 评论 -
node_exporter安装教程
node_exporter安装教程原创 2023-01-30 11:08:36 · 3641 阅读 · 0 评论 -
Linux命令 - crontab
Linux crontab 是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。原创 2023-01-19 08:27:03 · 1353 阅读 · 0 评论 -
清理linux系统内存缓存
清理linux系统内存缓存原创 2022-11-14 11:12:18 · 24061 阅读 · 0 评论 -
Docker的安装与卸载
我们本地开发的微服务可以通过docker build成一个docker镜像,塞在本地的docker引擎里面。若我们想要用的镜像本地没有,那么则会通过docker pull命令从远程来拉取docker镜像。这些镜像可以通过docker run命令来开启docker容器(其会先检查本地有没有该镜像,若没有则从仓库中下载后再开启容器)。原创 2022-10-14 10:17:04 · 706 阅读 · 0 评论 -
Docker数据管理
卷就是目录或文件,存在于一个或多个容器当中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过联合文件系统提供一些用于持续储存或共享数据的特性。卷设计的目的就是数据的持久化,完全独立于容器的生命周期,因此docker不会再容器删除时删除挂载的数据卷。映射目录以后,完成敏感数据的持久化和备份到主机目录。原创 2022-10-14 10:03:57 · 612 阅读 · 0 评论 -
Linux7安装MySQL8.0
2、CentOS7安装MySQL8报错:Error: Package: mysql-community-server-8.0.28-1.el8.x86_64 (mysql80-community) Requires: libtirpc.so.3()(64bit)从mysql官网上获取community版本最新的yum repository并安装。1、镜像源地址一定要和操作系统版本匹配,不然安装过程中容易出现问题。安装mysql-community-server。移除所有mysql开头的包。原创 2022-10-10 10:50:19 · 1885 阅读 · 0 评论 -
Linux命令 netstat
一、安装以及简介[root@localhost ~]# yum install net-tools列出网络状态[root@localhost ~]# netstat -- show network statusActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 localho原创 2022-02-15 18:19:12 · 821 阅读 · 0 评论 -
Linux命令 tcpdump、nc
tcpdump -D获取网络适配器列表:[root@localhost ~]# tcpdump -D1.docker02.nflog (Linux netfilter log (NFLOG) interface)3.nfqueue (Linux netfilter queue (NFQUEUE) interface)4.usbmon1 (USB bus number 1)5.usbmon2 (USB bus number 2)6.veth5c6f7e27.veth07eefb08.原创 2022-01-27 10:53:57 · 2951 阅读 · 0 评论 -
Linux命令 - 性能监控
top按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序, 然后回车。而大写的 R 键可以将当前的排序倒转列名 含义 PID 进程id PPID 父进程id RUSER Real user name UID 进程所有者的用户id USER 进程所有者的用户名 GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? PR 优先级 NI nice值。原创 2021-11-19 11:07:11 · 758 阅读 · 0 评论 -
Linux命令 - 常用
查看系统信息# 查看系统内核信息uname -a# 查看系统内核版本cat /proc/version# 查看当前用户环境变量envcat /proc/cpuinfo# 查看有几个逻辑cpu, 包括cpu型号cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c# 查看有几颗cpu,每颗分别是几核cat /proc/cpuinfo | grep physical | uniq -c# 查看当前CPU运行在32bit还原创 2021-11-19 11:09:29 · 1054 阅读 · 0 评论 -
如何找到并杀掉 Linux 系统中的僵尸进程
你真的需要关心僵尸进程吗?重点要说的是,僵尸进程并没有像它的名称那样看起来可怕。但如果系统的内存已经所剩不多或者有太多的僵尸进程在吃掉内存,问题会变得糟糕。同样,大部分 Linux 系统进程最大 PID 设置为 32768,如果过多僵尸进程导致其他重要任务没有 PID 可用,你的系统会发生崩溃。这是真实可能发生的,它有一定的概率,特别当存在一个编码糟糕的程序开始大量产生僵尸进程的时候。在这种情况下,找到并杀死僵尸进程是一个明智的做法。如何找到僵尸进程Linux 系统中的进程可能处原创 2021-10-27 11:41:49 · 795 阅读 · 4 评论 -
Linux安装yum源
一、进入yum源配置文件所在文件夹cd /etc/yum.repos.d/二、下载行云yum源配置文件releasever 的值表示当前系统的发行版本,可以通过rpm -qi centos-release命令查看version:,根据自己系统发行版本号修改下面链接中的releasever为version值 如centos7: 将releasever改为7wget https://www.xxx.com/artifactory/rpm-virtual/repoversion/{releasever原创 2021-06-15 15:35:03 · 664 阅读 · 0 评论 -
Linux命令 - curl
【代码】Linux命令 - curl。原创 2021-05-26 15:36:21 · 365 阅读 · 0 评论 -
Linux 压缩文件tar.gz的压缩、解压、分割、合并
Linux 压缩文件tar.gz的压缩、解压、分割、合并tar 解压压缩split 文件分割cat 合并文件tar 解压压缩生成压缩文件: tar -zcvf bigfile.tar.gz 文件目录split 文件分割-b: 选项后跟期望切割后的单个文件的大小,单位k或者meg. split -b 1024m test.txt //将test.txt按照每1024m切割为一个小文件-l: 选项后跟期望切割后单个文件的行数,直接写数字eg. split -l 1000 test.txt //将原创 2020-08-18 12:34:21 · 4902 阅读 · 0 评论