随笔分类 -  linux 知识

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

点击右上角即可分享
微信分享提示