linux
文章平均质量分 92
-无-为-
做过开发,创过业,踩过坑。从Java后台开发,PL/SQL开发,Pro*C开发,到shell脚本,再到兼职开发的MySQL DBA。
为人友善诚恳,工作踏实,吃苦耐劳,富有朝气,激情,以及团队合作意识。
https://github.com/zhouxx1055
https://zhouxx.blog.csdn.net/
展开
-
科普文:软件架构Linux系列之【五种IO模型】
Linux中的5中io模型阻塞IO(blocking IO)非阻塞IO (nonblocking IO)IO复用(select 和poll) (IO multiplexing)信号驱动IO (signal driven IO (SIGIO))异步IO (asynchronous IO (the POSIX aio_functions))可以看到,阻塞和非阻塞主要指的是等待数据这个过程应用进程需不需要挂起,同步和异步指的是等待数据和数据拷贝这两个过程应用进程需不需要挂起,只有异步IO做到了完全异原创 2024-09-07 23:03:11 · 1351 阅读 · 1 评论 -
科普文:linux系列之操作系统内存管理详解
内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。单一连续存储管理在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。原创 2024-08-03 08:17:10 · 727 阅读 · 0 评论 -
科普文:linux系列之操作系统内存管理简介
操作系统内存管理是计算机系统中的核心技术之一,页式管理、段式管理和段页式管理各有优缺点。它将物理内存分成固定大小的块,称为页框(Frame),同时将程序的逻辑地址空间也分成同样大小的块,称为页(Page)。例如,Linux系统采用的是页式管理,而Windows系统则采用段页式管理。段式管理(Segmentation)将程序的逻辑地址空间分为若干段(Segment),每段有不同的长度和属性。段表记录每个段的基地址和段长,可以是单级段表,也可以是多级段表。:段的划分更符合程序的逻辑结构,例如代码段和数据段。原创 2024-08-03 08:10:49 · 731 阅读 · 0 评论 -
科普文:Linux目录详解
本文,我们系统性的总结了 Linux的目录和文件,作为程序员,我们很多时候都需要和 Linux或者类 Linux系统打交道,因此,如果我们能正确理解 Linux 目录和文件结构,就可以快速的适应和掌握 Linux的相关知识。原创 2024-07-31 19:53:21 · 1007 阅读 · 0 评论 -
科普文:容灾
容灾(Disaster Tolerance),就是在自然灾害、设备故障、人为操作破坏等的灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生存系统的业务不间断地运行。容灾:是指系统冗余部署,当一处由于意外停止工作,整个系统应用还可以正常工作。容错:是指在运行中出现错误(如上下游故障或概率性失败)仍可正常提供服务。可用性:描述的是系统可提供服务的时间长短。用公式来说就是A=MTBF/(MTBF+MTTR),即正常工作时间/(正常工作时间+故障时间)。原创 2024-07-28 08:11:48 · 1063 阅读 · 0 评论 -
科普文:详解 JuiceFS 读性能:预读、预取、缓存、FUSE 和对象存储
JuiceFS 社区版架构分为客户端、数据存储和元数据三部分。数据访问支持多种接口,包括 POSIX 、HDFS API、S3 API,还有 Kubernetes CSI,以满足不同的应用场景。在数据存储方面,JuiceFS 支持几十种对象存储,包括公共云服务和自托管解决方案,如 Ceph 和 MinIO。元数据引擎支持多种常见的数据库,包括 Redis、TiKV 和 MySQL 等。JuiceFS 社区版(左)与企业版(右)架构图企业版与社区版的主要区别在图片左下角元数据引擎和数据缓存的处理。原创 2024-07-28 07:53:03 · 892 阅读 · 0 评论 -
科普文:Linux服务器磁盘的 I/O 性能优化思路
这里需要注意的是,对同步 I/O 来说,由于 I/O 提交和 I/O 完成是一个动作,所以 slat 实际上就是 I/O 完成的时间,而 clat 是 0。应用程序处于整个 I/O 栈的最上端,它可以通过系统调用,来调整 I/O 模式(如顺序还是随机、同步还是异步), 同时,它也是 I/O 数据的最终来源。记住,磁盘和文件系统的 I/O ,通常是整个系统中最慢的一个模块。所以,在优化 I/O 问题时,除了可以优化 I/O 的执行流程,还可以借助更快的内存、网络、CPU 等,减少 I/O 调用。原创 2024-07-27 22:22:17 · 793 阅读 · 0 评论 -
科普文:Linux系统安全加固指南
本指南仅关注安全性和隐私性,而不关注性能,可用性或其他内容。列出的所有命令都将需要root特权。以“$”符号开头的单词表示一个变量,不同终端之间可能会有所不同。选择一个好的Linux发行版有很多因素。避免分发冻结程序包,因为它们在安全更新中通常很落后不使用与Systemd机制的发行版。Systemd包含许多不必要的攻击面;它尝试做的事情远远超出了必要,并且超出了初始化系统应做的事情。使用musl作为默认的C库。原创 2024-07-25 09:58:57 · 1924 阅读 · 0 评论 -
科普文:图文探究Linux内核
本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么是Linux内核,能看懂Linux内核。拥有超过1300万行的代码,Linux内核是世界上最大的开源项目之一,但是内核是什么,它用于什么?原创 2024-07-25 09:46:31 · 1923 阅读 · 0 评论 -
科普文:【Linux内核设计思想】之三Linux内核启动过程
zImage适用于小内核的情况,它的存在是为了向后的兼容性。第三步,把 head.o,misc.o 和 piggy.o 链接生成 arch/i386/boot/compressed/vmlinux,这一步,链接的是arch/i386/boot/compressed/head.S。setup执行完毕,跳转到vmlinux.bin中的startup_32()是arch/i386/boot/compressed/head.S中的startup_32()这是一段自解压程序,过程和内核生成的过程正好相反。原创 2024-07-23 08:53:27 · 996 阅读 · 0 评论 -
科普文:【Linux内核设计思想】之二内核编译及内核开发的特点
在三选一的情况下多了一个 module 选项,如果选择 module 选项,表示该配置项已被选定,但编译的时候这部分功能的实现代码是以模块(一种可以动态安装的独立代码段)的形式生成,而 yes 选项表示把代码编译进主内核映像,而不是作为一个模块。但是内核栈的大小是固定的,它和体系结构有关,在 x86 上,栈的大小在编译时配置,可以是4KB或8KB,一般来说,内核栈的大小是两页,在32位机器内核栈大小为8KB,在64位机器内核栈大小为16KB,这是固定的,每个处理器都有自己的栈。例如下面一个条件选择语句。原创 2024-07-23 08:49:59 · 894 阅读 · 0 评论 -
科普文:【Linux内核设计思想】之一Linux内核概念梳理
Linux系统的基础包括内核、C库、编译器、工具集和系统的基本工具,比如登陆程序和shell。当我们说到Linux这个词时,一般指的是Linux内核。对于Linux系统来说,操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分,包括内核、设备驱动程序、启动引导程序、命令行shell或者其他用户界面、基本的文件管理工具和系统工具。用户界面是操作系统的外在表现,而内核是操作系统的内在核心。操作系统的其他部分必须依靠内核所提供的服务,而内核实质也是一个软件。内核也叫做超级管理者或者操作系统核心。原创 2024-07-23 08:48:39 · 921 阅读 · 0 评论 -
科普文:5种Linux下软件部署方式说明
Snap最大的特点是它的自包含性,每个Snap包都包含了运行该软件所需的所有依赖和库,这意味着Snap软件可以在几乎任何Linux系统上运行,而不会受到系统库版本冲突的影响。从传统的RPM包管理,到便捷的YUM软件仓库,再到颠覆性的Docker容器技术,Snap,源码安装,每一种方法都有其独到之处,适应不同的场景需求。RPM数据库记录了系统中所有已安装RPM包的信息,便于管理和跟踪。安全性:虽然Docker提供了隔离环境,但容器内的安全漏洞仍需关注,合理配置Docker的运行参数,使用安全的基础镜像。原创 2024-07-22 07:43:46 · 714 阅读 · 0 评论 -
科普文:Jmeter 性能压测-分析定位
科普文:Jmeter 性能压测-分析定位。1、压测过程中TPS上不去?请求响应时间过长?硬件资源不足:服务器的CPU、内存、磁盘等硬件资源不足,无法支撑高并发的请求处理。可以通过增加硬件资源或者优化服务器配置来提升TPS。网络带宽限制:网络带宽不足,导致服务器无法及时响应请求。可以通过增加网络带宽或者优化网络传输方式来提升TPS。数据库性能问题:数据库的读写性能不足,无法满足高并发的请求。可以通过优化数据库结构、索引、查询语句等方式来提升数据库性能。代码逻辑问题:应用程序中存在性能瓶颈原创 2024-07-22 02:24:36 · 458 阅读 · 0 评论 -
规范:Redis规范
在公司项目中,redis属于高频使用,在使用中,我们遇到了各种各样的redis问题,于是针对自身情况梳理了一个redis使用规范。原创 2024-07-21 09:51:38 · 956 阅读 · 0 评论 -
规范:Linux服务器程序规范
除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本上都是模板式的。———引言Linux服务器程序一般以后台形式运行。后台程序又称守护进程。它没有控制终端,因而也不会意外接受用户输入。守护进程的父进程一般是init进程(pid=1)。Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器。大部分后台进程都在/var/log下有自己的日志目录。Linux服务器程序一般以某个专门的非root身份运行。原创 2024-07-21 09:47:47 · 597 阅读 · 0 评论 -
实战:shell编程之全量命令练习
全网shell命令最全整理,28个大项,近千条shell命令。反之,若系统中并没有指定软件包的较旧版本,rpm 命令并不会安装此软件包。find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录。原创 2024-07-21 07:10:44 · 823 阅读 · 0 评论 -
实战:shell脚本练习
问题:没有注释的脚本难以理解,特别是在团队协作中,其他成员可能难以快速上手。问题:不进行调试可能导致脚本在实际运行时出现未预料的错误,影响系统的稳定性。问题:不立即退出可能导致后续命令基于错误的前提执行,造成更严重的错误。问题:使用未声明的变量可能导致不可预测的行为或错误的输出。好处:确保变量按照预期的方式被引用,防止意外的单词分割。多写注释:在脚本中添加注释,以帮助理解脚本的不同部分。好处:提前发现潜在的错误,避免在生产环境中出现问题。好处:避免使用未初始化的变量,减少潜在的bug。原创 2024-07-19 14:23:58 · 1382 阅读 · 0 评论 -
科普文:Nginx 高并发魔法打破性能瓶颈的终极秘籍
总结 Nginx 在高并发场景下优化的要点和关键技巧,鼓励读者不断实践和探索,以应对日益增长的高并发访问需求。在这个信息爆炸、流量为王的时代,掌握 Nginx 高并发优化技巧,就是掌握了开启高效服务之门的金钥匙。让我们一起驾驭 Nginx 的强大力量,为用户打造无与伦比的快速、稳定的网络体验!原创 2024-07-19 13:58:03 · 797 阅读 · 0 评论 -
科普文:一文搞懂Vim
这些是 Vim 的基本概念和一些常用命令,Vim 具有丰富的功能和命令,允许用户高效地编辑文本。要充分发挥 Vim 的威力,需要不断练习和学习,并逐渐掌握更高级的功能和定制选项。是一款非常流行的文本编辑器,尤其在Linux系统中,它以其高效的编辑能力和可定制性而著称。以下是一些关于Vim的详细教程,帮助你更好地理解和使用Vim:。通过上述教程,你可以更好地理解和使用Vim编辑器,无论是进行基本的文本编辑还是进行更高级的操作,Vim都能提供强大的支持和灵活性。原创 2024-07-18 14:57:36 · 1031 阅读 · 0 评论 -
实战:功能强大齐全BBS论坛项目Echo简介
Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java Web 技术栈(SpringBoot + MyBatis + MySQL + Redis + Kafka + Elasticsearch + Spring Security + ...),并提供详细的开发文档和配套教程。原创 2024-07-15 10:45:16 · 869 阅读 · 0 评论 -
科普文:分布式存储性能优化思路
企业实现私有云之后,云上的存储资源会是多元化的架构模式,基于上述提纲,在实践的过程当中实现更精细化的梳理、更准确客观的分析、更实事求是的态度,才能解决好云平台上存储架构性能与扩展性的平衡问题。分布式存储系统当中在哈希计算的时候之所以能保持集群的相对稳定性,就是因为虚拟对象(如Ceph的PG、Pool,如Swift的Container)设计,同样这些虚拟对象数量、管理方式、映射关系等方面的配置也是决定数据分布式算法计算因子是否优秀的重要方面,同样需要精细化设计。比如高速网络的选择要考虑到网络通讯质量的需求。原创 2024-07-15 10:17:06 · 1066 阅读 · 0 评论 -
科普文:信创主流操作系统选型对比测试分析
国内本土操作系统主要以Linux为基础进行二次开发为主,目前国内信创类服务器操作系统主要分为开源社区版和商业版两大类。开源社区版主要以欧拉OpenEuler、龙蜥OpenAnolins、OpenCloud等,商业版主要以麒麟KylinOS、统信UOS、其他(中科方德Delix、红旗)等为代表,以下表格为其主要发行版本对比:(点击图片可放大)原创 2024-07-15 10:13:27 · 3443 阅读 · 0 评论 -
科普文:中小银行银河麒麟操作系统性能优化实战经验
在配置系统之外,掌握收集基本的系统信息的方法也很重要,服务器版麒麟系统除了用命令行查看系统资源使用情况(命令与redhat一样,这里就不赘述了),还可以在系统监控工具的图形界面上查看和查找进程,改变进程的优先级以及杀死进程。默认系统监控工具会显示当前登录用户的进程列表,通过选择查看菜单下的不同选项,可查看活动的进程、查看所有进程、查看当前登录用户的进程、查看进程依赖,还可以通过按钮刷新进程列表,选中进程后杀死进程。如测试分区为tmpfs,可以提高部分测试程序的分数,修改IO调度器,会对此部分的性能有影响。原创 2024-07-15 10:10:07 · 1418 阅读 · 0 评论 -
科普文:MySQL 数据库巡检
数据库巡检的内容通常涵盖主机硬件、操作系统和MySQL巡检项。其中,主机/os巡检主要包括:主机的硬件配置、CPU/内存/磁盘使用率以及磁盘的I/O使用情况;MySQL巡检项包括:数据库配置、用户权限、大表数据量、业务表主键和自增长情况、数据库的并发性、当前和历史连接情况统计、备份执行情况以及日志记录和慢SQL的分析优化等。原创 2024-07-15 10:06:00 · 619 阅读 · 0 评论 -
科普文:Linux服务器巡检小结
权限管理系统能够按照统一的策略实现层次化的信息资源结构和关系的描述和管理,提供统一的、基于角色和用户组的授权管理,对授权管理和访问控制决策策略进行统一的描述、 管理和实施, 提供基于属性证书和 LDAP 的策略和授权信息发布功能,构建高效的决策信息库和决策信息库的更新、同步机制,面向各类应用系统提供统一的访问控制决策计算和决策服务。即根据容灾备份系统的需求,明确哪些业务状态数据需要备份,事实上,需要提供最完善备份的是稳定的业务状态数据, 而处理流程当中的中间临时数据的备份需求较低。原创 2024-07-15 09:59:33 · 1078 阅读 · 0 评论 -
科普文:存储 IO 性能优化策略总结
简单来讲从主机访问存储存在很多层的Queue(软硬件在传输过程中设计的Buffer大小,将串行流水线操作模拟成并行操作的一种并发交易模拟机制)。一般来说,更高的队列深度相当于更好的性能。如表5所示,OLTP系统中,单进程的LGWR进程有可能成为一个大瓶颈,特别是在无法保证在线日志IO写性能的情况下,很容易出现排队等LGWR进程的情况。而小IO的应用,比如数据库,则需要通过IOPS和延时的指标来评测性能,高IOPS和低延时同时满足的情况下,才能应对高并发且快速的数据库访问,如表2。原创 2024-07-15 09:50:31 · 720 阅读 · 0 评论 -
科普文:存储性能瓶颈分析与优化总结
分布式存储系统的核心设计思想是去中心化, 去中心化的难点主要在于是主控节点的去中心化,有主控节点的架构比如 HDFS 的架构设计思路是 map-reduce ,化大为小,分而治之,再合并处理,其架构中需要主控节点来协调,只是主控节点的负载都分发到了数据节点,数据节点上则存放着数据副本,每个数据副本又都分布在三个不同的数据节点上,如图 5 所示;随着数字化转型的深入,企业的 IT 系统建设也进一步加快,这一方面带来了数据量的急剧增长,另一方面也提高了数据的访问频率,存储的性能瓶颈的影响也会被进一步放大。原创 2024-07-15 09:48:19 · 706 阅读 · 0 评论 -
科普文:了解RAID独立冗余磁盘阵列
RAID 6思想最常见的实现方式是采用两个独立的校验算法,假设称为P和Q,校验数据可以分别存储在两个不同的校验盘上,或者分散存储在所有成员磁盘中。外接RAID卡通过其硬件RAID控制器,接收主机发送的数据,按照预设的规则进行数据的分割、条带化,并根据所选的RAID级别,将数据分散存储到多个磁盘驱动器上。RAID的设计初衷是提供高端的存储功能和冗余的数据安全,在整个系统中,RAID被看作是由两个或更多磁盘组成的存储空间,通过并发地在多个磁盘上读写数据来提高存储系统的I/O性能。以满足不同数据应用的需求。原创 2024-07-15 09:43:39 · 1074 阅读 · 0 评论 -
科普文:Linux服务器性能分析指标
基础性能指标CPU 使用率(CPU Utilization)含义: CPU 占用率。理想值: 低于70%。超过85%时需注意,超过90%可能需扩容或优化。内存使用率(Memory Utilization)含义: 内存已用量占总内存的百分比。理想值: 低于70%。超过85%需注意,超过90%可能需扩容或检查内存泄漏(OOM问题)。原创 2024-07-15 07:23:40 · 1008 阅读 · 0 评论 -
实战:Linux下静默安装DM达梦数据库
静默安装DM达梦数据库,提前编写好安装脚本、下载好软件、配置好服务器的内核参数信息。原创 2024-07-13 04:15:00 · 551 阅读 · 0 评论 -
科普文:Shell编程三剑客:grep+sed+awk
shell三剑客是grep、sed和awk三个工具的简称,因功能强大,使用方便且使用频率高,因此被戏称为三剑客,熟练使用这三个工具可以极大地提升运维效率。grep擅长查找过滤快速查找过滤sed擅长取行和替换需要快速进行替换/修改文件内容awk擅长取列、统计计算文件取列、数据切片、对比/比较和统计。原创 2024-07-11 19:55:00 · 1161 阅读 · 0 评论 -
科普文:一天学会shell编程
shell是一个用C 语言编写的程序,它是用户使用Liunx的桥梁。shell既是一种命令语言,又是一种程序设计语言。shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问Liunx内核服务。在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。原创 2024-07-11 13:59:01 · 791 阅读 · 0 评论 -
科普文:jvm笔记
场景:隔离加载类(中间件,不同的环境避免类的冲突,实现隔离),修改类加载的方式(根据需要去加载非核心的类库),扩展加载源(从数据库等其他地方加载字节码),防止源码泄漏(对字节码文件进行加密,在加载的时候解密)自定义的步骤:继承ClassLoader 重写findClass() ,读入二进制字节流如果没有复杂的需求,可以继承ClassLoader 子类URLClassLoader 不用编写findClass() ,读入二进制字节流7款经典的垃圾收集器串行回收器:Serial、 Serial Old。原创 2024-07-11 05:30:00 · 1178 阅读 · 0 评论 -
科普文:HTTPS协议
SSL(Secure Socket Layer)即,位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL 通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。SSL 记录协议(SSL Record Protocol):它建立在可靠的传输协议(如 TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。原创 2024-07-10 16:25:37 · 1669 阅读 · 0 评论 -
科普文:看懂Linux日志分析
日志文件是Linux系统中极为重要的一部分,它们记录了系统和应用程序的各种活动信息。通过日志文件,系统管理员可以监控系统的运行状态、发现潜在的问题,并进行故障排除。在介绍具体的日志分析命令之前,首先了解一下Linux系统中常见的日志文件。它们通常位于/var/log:记录系统的通用日志信息,适用于大多数Linux发行版。:记录系统的通用日志信息,通常在Red Hat系的发行版中使用。:记录身份验证相关的日志信息,如登录尝试、sudo命令使用等。:记录内核相关的日志信息。:记录系统启动时的内核消息。原创 2024-07-10 10:16:49 · 1292 阅读 · 0 评论 -
Java web应用性能分析之【shell脚本分析java进程】
前面几篇解读了java进程问题分析定位。原创 2024-07-10 09:35:14 · 605 阅读 · 0 评论 -
限流:深入理解微服务高可用三板斧“限流”
限流顾名思义,就是对请求或并发数进行限制;通过对一个时间窗口内的请求量进行限制来保障系统的正常运行。如果我们的服务资源有限、处理能力有限,就需要对调用我们服务的上游请求进行限制,以防止自身服务由于资源耗尽而停止服务。在限流中有两个概念需要了解。阈值:在一个单位时间内允许的请求量。如 QPS 限制为10,说明 1 秒内最多接受 10 次请求。拒绝策略:超过阈值的请求的拒绝策略,常见的拒绝策略有直接拒绝、排队等待等。原创 2024-07-10 09:07:38 · 764 阅读 · 0 评论 -
科普文:深入理解负载均衡(四层负载均衡、七层负载均衡)
负载均衡(Load Balance)的指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。负载均衡重点在于由原来的单个节点承接流量,变成多个节点分担流量,减少请求响应时间,提高应用程序的可用性和可伸缩性。原创 2024-07-09 15:01:33 · 2440 阅读 · 1 评论 -
科普文:K8S中常见知识点梳理
比如,可以指定一个 Pod 只能被调度到与指定节点具有相同标签的节点上,或者指定一个 Pod 不能被调度到与指定节点具有相同标签的节点上。在这种方式下,Kubernetes 会根据当前节点的资源使用情况,将 Pod 动态地调度到具有可用资源的节点上,从而实现资源的最优分配。通过为节点打上不同的标签,可以让 Kubernetes 将特定类型的 Pod 调度到具有相应标签的节点上。集群自动伸缩(Cluster Autoscaler):根据集群节点的资源利用率,动态地增加或减少节点的数量,以适应不同的负载需求。原创 2024-07-09 05:30:13 · 818 阅读 · 0 评论