随笔分类 - linux 知识
摘要:一、死锁代码 #include <iostream> #include <thread> #include <mutex> using namespace std; mutex mt1; mutex mt2; void thread1(){ cout << "thread1 begin" << en
阅读全文
摘要:linux内核空间 Linux 内核空间分为三个区域ZONE: ZONE_DMA, ZONE_NORMAL, ZONE_HIGHMEM 物理地址空间的顶部以下一段空间,被PCI设备的I/O内存映射占据,它们的大小和布局由PCI规范所决定。640K~1M这段地址空间被BIOS和VGA适配器所占据 由于
阅读全文
摘要:linux 文件删除 文件删除控制的变量 i_link :文件的硬连接数量 i_count :引用计数(每有一个程序使用i_count加1) 文件删除的条件: i_link=0 & i_count=0 rm命令 对于删除命令rm而言,实际就是减少磁盘引用计数i_link。这里就会有一个问题,如果一个
阅读全文
摘要:https://zhuanlan.zhihu.com/p/641716217
阅读全文
摘要:1、背景 多线程间需进行通信,锁是通信的主要机制。但是每次使用都会引发系统调用,当锁具有低争用率时,系统调用可能会构成显著的开销。经研究发现,很多同步是无竞争的,即某个进程进入互斥区,到再从某个互斥区出来这段时间,常常是没有进程也要进这个互斥区或者请求同一同步变量的。但是在这种情况下,这个进程也要陷
阅读全文
摘要:网络通信 网络通信是一种把不同计算机或网络设备连接到一起的技术,本质上是跨系统的进程间通信,必须要通过网络(硬件)才能进行。随着高并发、分布式、云计算、微服务等技术的普及,网络的性能也变得越来越重要。 一、网络模型 1.1 OSI模型 为了解决网络互联中异构设备的兼容性问题,并解耦复杂的网络包处理流
阅读全文
摘要:linux linux内核五大模块:进程调度、进程通信、内存管理、文件管理、网络通信 进程调度 进程是linux系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。 【进程创建】: 在Linux环境编程时,一般采
阅读全文
摘要:一、strace 是什么? 按照 strace 官网的描述,strace 是一个可用于诊断、调试和教学的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 strace 底层使用内核的 ptrace 特性来实现其功能。 在运维的日常工作中,
阅读全文
摘要:1、TOP命令,找到占用CPU最高的进程 2、通过TOP -H -p 进程ID,找到具体的线程占用情况,Shift+H可以开启关闭线程显示 3、通过命令pstack 进程ID显示线程堆栈,LWP 24729对应线程ID的堆栈,就是占用CPU最高的堆栈,可以具体分析什么原因造成的。 4、对于c/c++
阅读全文
摘要:## 一、背景 在生产环境中,服务器会由于某些无法连接到公网,而我们想在这样的服务器上安装软件时会出现依赖导致安装失败。我们可以通过配置离线的yum源解决类似问题。 大概流程为1、在公网环境下载yum源;2、将yum源上传到服务器;3、配置离线yum源。 下面详细介绍如何配置yum源。 ## 二、下
阅读全文
摘要:## 背景 在我们服务运行环境由物理机切换到云上后,发现服务性能有大幅下降(时延有较大的上升)。 ## 分析 首先是服务的性能变化和上云有关。然后分析对比物理机和云的参数对比。比如外部竞争;云的宿主机系统版本;perf stat分析内存情况等。 1、外部竞争:因为云上容器是和其他容器混部,难免会受到
阅读全文
摘要:资料:https://blog.csdn.net/m0_74282605/article/details/127788611
阅读全文
摘要:awk https://cloud.tencent.com/developer/article/2098942 sed https://www.cnblogs.com/xiaoyongzhuo/p/7452118.html
阅读全文
摘要:1、出现core文件 core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试。当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文件,默认生成位置与可执行程序位于同一目录下,文件名为core. 其中**是某一数字。 1.1core文件完整 此时
阅读全文
摘要:## 一、TLS的由来 在多程线程序设计中,很多时候对数据进行划分,不同的数据区域交给不同的线程处理,可以避免[多线程](https://so.csdn.net/so/search?q=多线程&spm=1001.2101.3001.7020)中竞争访问数据。但是有一个问题得考虑,那就是:各个独立线程
阅读全文
摘要:前期准备 一般来说GDB主要调试的是C/C的程序。在gdb调试之前,必须要把调试信息加到可执行文件中。使用编译 器(cc/gcc/g)的 -g 参数可以做到这一点。如: gcc -g hello.c -o hello g++ -g hello.cpp -o hello 如果没有-g,将看不见程序的函
阅读全文
摘要:查看centOS版本信息 cat /etc/issue cat /etc/redhat-release 查看CentOS版本 cat /proc/version uname -a uname -r lsb_release -a 查看系统是32位还是64位 getconf LONG_BIT https
阅读全文
摘要:第一步 粘贴之前 😒et paste 第二步 粘贴内容 第三步 粘贴之后 😒et nopaste 资料:https://www.cnblogs.com/ccielife/p/12788009.html
阅读全文
摘要:find . -iname "cmakelist*" 查找当前目录下名称包含cmakelist的文件,不区分大小写 资料 https://www.cnblogs.com/jiftle/p/9707518.html
阅读全文
摘要:1、Linux系统下,所有进程允许打开的最大fd数量。命令为: cat /proc/sys/fs/file-max 2、Linux系统下,所有进行已经打开的fd数量及允许的最大数量。命令为: cat /proc/sys/fs/file-nr 3、单个进程允许打开的最大fd数量。命令为: ulimit
阅读全文