Linux
文章平均质量分 73
本专栏主要针对的是Linux细枝末节的知识,希望大家喜欢
MyySophia
工作只是你的权利,而只有你的行为才能为你赢得尊重
展开
-
Linux性能优化实战学习笔记(合集)
十五、Linux性能优化实战学习笔记 - Linux内存是怎么工作的_MyySophia的博客-CSDN博客十六、Linux性能优化实战学习笔记-怎么理解内存中的Buffer和Cache?_MyySophia的博客-CSDN博客十七、Linux性能优化实战学习笔记-如何利用系统缓存优化程序的运行效率?_MyySophia的博客-CSDN博客十八、Linux性能优化实战学习笔记- 内存泄漏了,我该如何定位和处理?_MyySophia的博客-CSDN博客十九、Linux性能优化实战学习笔记- 为什么原创 2022-01-17 15:44:01 · 1443 阅读 · 0 评论 -
Shell进阶实战合集
shell 进阶高级重定向的示例(shell 进阶)shell是如何被解析的?(shell 进阶)shell的作用域?(shell 进阶)shell中需要掌握的几个信号(shell 进阶)shell中的信号捕获trap(shell 进阶)Linux shell 内建命令、常见外部命令以及常见环境变量什么情况下会开启子shell(shell 进阶)终端、进程组、会话、shell 和脱离终端(shell进阶)_MyySophia的博客-CSDN博客shell命令行的选项和参.原创 2022-01-10 12:06:03 · 750 阅读 · 0 评论 -
理解 Linux backlog/somaxconn 内核参数
在研究IOTDB的时候,启动服务的时候会有个报警。iotdb后端服务器 Socket accept 队列满,系统的 somaxconn 内核参数默认太小。建议设置为65535下面我们我深入学习理解下 somaxconn 内核参数相关内容。原创 2023-10-08 15:00:54 · 408 阅读 · 0 评论 -
vim学习笔记(致敬vim作者)
【Normal】模式下如果需要往某行插入内容,一般是将光标移动到指定位置,然后【insert】模式插入。vim 删除某个字符之后改行的其他的字符?删除某个字符之后的其他字符?→ 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如。: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(是下一个,#是上一个) 对应的就是search模式的N和n。→ 到下一个为a的字符处,你也可以fs到下一个为s的字符。【3】删除某个字符之后的其他字符?→ 到逗号前的第一个字符。原创 2023-08-06 21:51:52 · 2868 阅读 · 0 评论 -
红帽集群套件RHCS概述
RHCS是Red Hat Cluster Suite的缩写,也就是红帽子集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久、稳定的提供服务,同时也保证了后端数据存储的安全。原创 2023-07-11 10:38:03 · 412 阅读 · 0 评论 -
正则表达式回溯引发的生产惨案
业务上的一个字段在解析时为了避免脏数据导致后续ETL的异常,决定从源头将该字段严格按照设计的规则去匹配。该字段的上传是设备端传上来的文件中的一个字段。使用regex101 debug mode 时,发现在匹配最后一个真这个块时发生了 pattern backtrack indicator。也就是说并不是所有的id都匹配不到,是偶发的。发现问题之后立即进行了退版操作。有几个id匹配不到,可实际上应该匹配到。这个正则匹配到这一步为啥会从头开始匹配?回溯之后就匹配不到了。为什么会发生回溯呢?原创 2023-06-30 10:32:21 · 293 阅读 · 0 评论 -
linux中sh/bash 进程为何不接受kill SIGTERM
所以sh和bash进程不会立即响应SIGTERM信号是为了确保正常的,干净的终止,并给用户一个机会来控制终止操作。如果用户真的想立即终止sh/bash进程,可以发送SIGKILL信号。但这可能会导致数据丢失或其他问题,因此不推荐使用.原创 2023-05-23 23:04:32 · 321 阅读 · 0 评论 -
git版本升级
因为没有外部网络,看了一下rpm包安装依赖太多了,最后决定二进制安装。原创 2023-04-27 15:20:40 · 549 阅读 · 0 评论 -
一张能让你把网络数据包传输说20分钟的图
特别好的一张图,不要失传了。按理这图应该对应有很好的一篇文章或者博客,原创 2023-04-15 11:41:39 · 144 阅读 · 0 评论 -
shell命令行并行神器 - parallel
GNU parallel 是一个 shell 工具,用于使用一台或多台计算机并行执行作业。作业可以是单个命令或必须为输入中的每一行运行的小脚本。典型的输入是文件列表、主机列表、用户列表、URL 列表或表列表。作业也可以是从管道读取的命令。GNU parallel 然后可以拆分输入并将其通过管道并行传输到命令中。在 shell 中编写循环,你会发现 GNU parallel 可以取代大部分循环,并通过并行运行多个作业来使它们运行得更快。对于每一行输入,GNU parallel 将以该行作为参数执行命令。原创 2023-02-13 20:30:00 · 3114 阅读 · 0 评论 -
为什么bitnami 安装的软件进入容器,用户名都是I have no name
可以看到输出,current_user 处会显示主机当前用户的名字,这解决了主机用户对挂载的卷没有权限的问题。主机当前目录出现了容器内创建的 tmp.txt,但是其权限、用户和组均是 root,其他用户不可写。除了用户名显示问题还存在一个问题,在绑定挂载中如果没有挂载的目录容器没有权限写入内容。,这是因为我们通过 --user 参数指定了容器内部的用户 id,这样容器运行过程往 /project 写的临时文件都会出现在主机上。在k8中容器默认好像是以uid=1001启动的,可以修改该uid。原创 2023-02-10 14:00:00 · 3466 阅读 · 0 评论 -
优化redis key 迁移程序(云原生版本)
其实这个Dockerfile 可以使用git来管理, 如果有新的index 需要同步,直接在git提交需要迁移的index文件触发CICD,(continuous integration continuous deliver) ,将build好的镜像推送到镜像仓库.比如你宿主机挂载的文件目录是 root 的,而 docker 容器中 python应用程序的默认的用户,id 和 group 都是 1000(官方容器默认的值),这种情况在容器中就无法正常写入文件到宿主机。11个线程并行大约1mins。原创 2022-09-19 11:20:23 · 238 阅读 · 0 评论 -
Redhat离线安装docker
Redhat系统离线安装docker。原创 2020-08-21 14:15:51 · 2256 阅读 · 0 评论 -
文件比对shell脚本实战(多线程并发shell)
如果两个日志文件中的指定key的value相等则为true,否则为false。测试的log大概100行,而正式区的log大约在100W行左右,甚至更多。当在正式区单个日志大概158W, 也就是300 W 的级别文本比较。第3个参数是变量的indexList(你理解为一个关键字就可以)这时候如果你的机器是多个核心,就可以充分利用并发处理来加快速度。1、在A、B两个AP的log中筛出某个关键字,将比较结果输出。20个thread的情况下大致是10倍的速度提升.以下测试是 并发20的case。原创 2023-02-07 10:00:00 · 1026 阅读 · 0 评论 -
Linux中如何写一个倒计时的脚本
在每次循环中,通过tput rc恢复之前存储的光标位置,在终端中打印出新的count值,然后使用tputs ed清除从当前光标位置到行尾之间的所有内容。tput是一个用于操作终端的Linux/Unix shell内置命令,用于设置终端的颜色、大小、位置等属性,以及让用户更加方便地操作终端。如移动光标、清屏、设置颜色等。tput ed:tput ed是控制台控制终端的一个命令,用于清除从当前光标位置到屏幕末尾的所有文本。tput sc:tput sc是控制台控制终端的一个命令,用于保存当前控制台的光标位置。原创 2023-02-06 09:20:12 · 771 阅读 · 0 评论 -
pwd踩坑记之pwd 软连接如何显示物理位置
今天使用pwd获取脚本的目录,脚本一直执行失败。后来发现所在目录为软连接,而脚本是在软连接指向的物理位置,软连接的内容没有更新。原创 2023-02-03 08:58:35 · 231 阅读 · 0 评论 -
浮点数的世界 0.1 + 0.2 = 0.30000000000000004?
同样的方法,0.2 用单精度浮点数表示是:0.20000000298023223876953125。所以,0.1 + 0.2 的结果是:0.300000004470348358154296875。根据前面的讲解,十进制 0.1 转为二进制小数,得到的是 0.0001100…在小数点后 4 位时,连续的二进制数,对应的十进制数却是不连续的,因此只能增加位数来尽可能近似的表示。今天看到一个有趣的新闻,浮点数计算导致的灾难,借此机会再理解一下浮点数的原理。0.1 和 0.2 是如何表示的?看到这个结果表示震惊。原创 2023-01-30 17:03:24 · 241 阅读 · 0 评论 -
Top 命令中的 Irix 模式与 Solaris 模式(解释单个进程cpu占比为何会超过100%?)
任何单个进程都不可能同时使用多个处理器。如果你想让数据库操作使用更多的处理器,你应该尝试数据库级别的“并行度”或应用程序级别的“多线程”。原创 2023-01-17 14:21:19 · 853 阅读 · 0 评论 -
Linux- rsync企业级实战
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pt4XH6aZ-1673600259248)(null)]rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。rsync 的官方站点的网址是,目前最新版本是 3.1.3,由 Wayne Davison 进行维护。原创 2023-01-13 16:58:44 · 837 阅读 · 0 评论 -
ip查询显示泛播是什么意思?
如果你的 IP 地址是 104.18.3.161,那么这个 IP 地址是由 Cloudflare 进行泛播的,这意味着这个 IP 地址被 Cloudflare 用来作为一个中间转发服务器,用来帮助请求到达目标服务器。Cloudflare 是一个内容分发网络(CDN)和 DDoS 防护服务,它的目的是提高网站的性能,同时也为网站提供了一定的安全保护。好奇openai的请求是如何转发的。查询这个ip是个泛播。原创 2023-01-04 10:37:35 · 18405 阅读 · 0 评论 -
Linux fdisk实战 && 挂载参数优化
etc/fstab 文件是一个用于配置文件系统挂载的系统文件。该文件包含了每个文件系统的挂载点,文件系统类型,挂载选项以及挂载设备的信息。这些挂载选项是用于设置文件系统的特定行为的。noatime:该选项表示在访问文件时不更新文件的访问时间。这意味着在该文件系统中,每次访问文件时,文件的最后访问时间不会更新。这可以减少文件系统的写入次数,从而提高磁盘性能。此选项的页面大小(通常4KiB)到1GiB,包括有效值,功率为2的增量。这意味着在该文件系统中不能创建设备文件,并且也不能将设备挂载到该文件系统上。原创 2022-11-04 09:59:03 · 851 阅读 · 0 评论 -
fio磁盘压测工具
借助前面提到过的 blktrace,再配合上 fio,就可以实现对应用程序 I/O 模式的基准测试。你需要先用 blktrace ,记录磁盘设备的 I/O 访问情况;然后使用 fio ,重放 blktrace 的记录。通过 blktrace+fio 的组合使用,得到了应用程序 I/O 模式的基准测试报告。所以,理想情况并不能精确模拟应用程序的 I/O 模式。因为是虚拟机,所以对于性能很虚。那怎么才能精确模拟应用程序的 I/O 模式呢?通常情况下,应用程序的 I/O 都是。幸运的是,fio 支持。原创 2022-12-26 17:03:58 · 923 阅读 · 0 评论 -
Centos 图形化yum管理工具 - yum Extender
例如,要清除所有缓存文件,可以使用命令 yum clean all。要清除存储在缓存目录中的软件包头文件和软件包文件,可以使用命令 yum clean headers packages。yum clean 命令是 yum 的一个子命令,用于清除 yum 缓存目录中的文件。注意:yum clean 命令只会清除缓存目录中的文件,不会删除已安装的软件包。dbcache:清除存储在缓存目录中的数据库缓存文件。headers:清除存储在缓存目录中的软件包头文件。packages:清除存储在缓存目录中的软件包文件。原创 2022-12-26 13:50:27 · 1172 阅读 · 0 评论 -
Linux使用Aria2命令下载BT种子/磁力/直链文件
使用aria2的分段和多线程下载功能可以加快文件的下载速度,对于下载大文件时特别有用。这将使用2个连接和2个线程来下载该文件。原创 2022-12-23 15:05:39 · 5367 阅读 · 0 评论 -
kubernetes--kube-proxy组件深入理解
当iptables规则较多时会有性能问题,因此ipvs横空出世,解决了iptables的性能问题还基于netfilter对svc进行负载。ipvs是Linux操作系统中的一种内核级别的负载均衡技术,它能够在内核中实现负载均衡,从而提高网络服务的性能和可用性。该方式 最主要的问题是在服务多的时候产生太多的iptables规则,非增量式更新会引入一定的时 延,大规模情况下有明显的性能问题。iptables能够支持多种网络负载均衡算法,但它并不能实现高性能的负载均衡,适用于对性能要求较低的场景。原创 2022-12-11 20:03:48 · 843 阅读 · 0 评论 -
一文彻底搞懂ssh的端口转发
SSH 隧道或 SSH 端口转发可以用来在客户端和服务器之间建立一个加密的 SSH 连接如下图,通过它来把本地流量转发到服务器端,或者把服务器端流量转发到本地。比如从本地访问服务器上的 MySQL 管理后台,或者把本地的服务暴露在公网上。比如从公网上访问你家里的的NAS或图书馆.端口转发分为本地端口转发和远程端口转发.原创 2022-12-10 22:41:39 · 15399 阅读 · 0 评论 -
抓包分析ssh远程主机为何变慢了?
最后协商成功之后,将会生成一个对称加密会话密钥key以及一个会话ID,在这里要特别强调,这个是对称加密密钥key,不要和公钥相混淆了,公钥和密钥在上面开头已经着重强调两者的区别了,公钥是给客户端去验证服务器用的。序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。而会话密钥是通过D-H算法计算出来的,不会在网络上传输,其破解的难度取决于离散对数的破解难度,一般不会被破解的,有兴趣的可以自行了解该算法原理。原创 2022-12-09 11:08:31 · 696 阅读 · 0 评论 -
一文彻底搞懂什么是SSH中间人攻击(Man-in-the-middle attack)
服务器重新安装之后,ssh无法连接,提示中间人攻击(man-in-the-middle-attack)。之前也遇到过,按照网上的操作能解决,但是一知半解,今天趁此把该问题消化掉。【2】中间人攻击原理登录报错信息提示其实如果仔细阅读这个报错提示应该也能理解一二。从首次登录服务器说起首次ssh登录服务器背后都发生了什么呢?上面的文字意思就是 无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?如果不能登录,例如你要ssh github,那么一般这种公网上的服务器一般都会公布自己原创 2022-12-06 15:10:13 · 2638 阅读 · 0 评论 -
覆盖libc.so.6的惨痛教训
此次事件是因对系统层认知不足, 根本原因就是我使用了高版本 2.17 的libc.so.6,覆盖了系统的2.12版本导致的问题。对于这个错误操作我做出深刻检讨, 对事件负全责。望今后自己和同事能引以为戒,避免再次发生此类事件.原创 2022-11-28 16:54:16 · 1908 阅读 · 1 评论 -
tmux -高效使用Linux terminal
这个利器绝对可以提升工作效率,因为你会发现日常工作中切换terminal会耗费你大量的时间,花上1-2个小时打磨一下这个利器,会事半功倍,绝对值得.原创 2022-11-28 08:36:09 · 928 阅读 · 0 评论 -
ansible企业级实战(Markdown)
Ansible通过facts组件来收集被管理节点信息,facts收集的信息是json格式的,其中任一项都可以当作变量被直接引用,如在ansible-playbook、jinja2模板中引用。用列表的索引取出,find_result.stdout_lines[0],这取出的是/datap11/gpseg20/pg_log/gpdb-2020-08-09_000000.csv。command是默认模块,建议使用shell,功能较方便,script和shell的区别是一个执行控制端的脚本,一个执行远程端的脚本。原创 2022-11-22 09:35:20 · 322 阅读 · 0 评论 -
能解决你80%关于存储的疑惑
在计算机系统中,常用的存储介质包括寄存器、内存、SSD、磁盘等,寄存器的速写速度与CPU相同,一个时钟周期是0.3纳秒,而内存访问需要120纳秒,寄存器的读写速度比内存要快几百倍,固态硬盘访问需要50~150μs,磁盘访问需要一到十几毫秒,磁盘的读写速度比内存慢了几万倍,网络访问则更慢,需要几十到上百毫秒。如果把CPU的一个时间周期当作一秒,磁盘访问需要几个月才能完成。磁头通过在不同的柱面上来回移动读写数据,这个过程称为寻道。原创 2022-11-16 20:30:00 · 1443 阅读 · 0 评论 -
十九、Linux性能优化实战学习笔记- 为什么系统的Swap变高了?(markdown版本)
缓存和缓冲区,就属于可回收内存。它们在内存管理中,通常被叫做文件页(File-backed Page),此外除了缓存和缓冲区,通过内存映射获取的文件映射页,也是一种常见的文件页。它也可以被释放掉,下次再访问的时候,从文件重新读取。原创 2022-11-12 09:56:10 · 374 阅读 · 0 评论 -
vagrant快速拉起一个带GUI的Ubuntu系统
vagrant快速拉起一个带GUI的Ubuntu系统原创 2022-11-01 11:11:00 · 320 阅读 · 0 评论 -
Linux和Unix的区别?什么是Posix标准?
linux和unix的区别 posix是什么原创 2022-10-31 21:18:01 · 278 阅读 · 0 评论 -
如何管理远程vagrant拉起的virtualbox虚拟机?
在linux机器上开了几个虚拟机,启动命令都是VBoxHeadles。这个是什么意思呢?也就是启动一个没有界面的虚拟机。遗留问题: VBoxHeadless 之前叫VBoxVRDPwindows上的虚拟机也有同样的进程这个web-svc和remotebox相互关联进行管理宿主机上的虚拟机。这个的功能类似于我们使用VBoxManage 管理命令查看、管理虚拟机类似。只不过是将这个过程在远程以web的形式展现出来。原创 2022-10-30 21:26:40 · 731 阅读 · 0 评论 -
shell中如何生成随机数?
【代码】shell中如何生成随机数?原创 2022-10-28 14:37:38 · 696 阅读 · 0 评论 -
单调时钟与墙上时钟的区别?ntp如何优雅校时?
也就是说,ntpd 当接收到需要「回拨」的时间时,会让本机时间走得「慢」一点,小步调整,逐渐与服务端的时钟「对齐」,这样一来,本机时间依旧是递增的,避免发生「倒流」。另外,在编写程序时,也要注意调用的时间 API 获取的是哪个时间,避免业务逻辑发生异常。NTP 检测到本地石英比时间服务器更快或者更慢,NTP 会调整本地石英的震动频率(摆动),最大幅度为 0.05%。一般我们写的代码,像上面程序调用的「时间 API」,通常获取的时间是。,所以,如果时间发生校准,就可能会发生「时光倒流」的情况。原创 2022-10-09 09:15:00 · 988 阅读 · 0 评论 -
CPU缓存一致性协议动态表示
MESI Interactive Animations原创 2022-09-30 16:51:33 · 311 阅读 · 0 评论 -
Differences between disk Cache Write-through and Write-back
write-back:将数据更新到cache,并不更新到内存(DRAM),待后续flush cache时存入内存;write-allocate:将要写入的位置从内存读到cache,然后按照上述write hit继续操作;write-no-allocate:不会将要写入的数据从内存读到cache,直接将要写的数据写入内存。>Read allocate,先把数据读取到Cache中,再从Cache中读数据。write-through:数据同时会更新到cache和内存;CPU读Cache时。翻译 2022-09-30 14:14:04 · 169 阅读 · 0 评论