随笔分类 - Linux
摘要:目录什么是链接映射文件?生成链接映射文件的方法在 CMake 中启用在 GCC/LD 命令行中直接使用链接映射文件的核心内容1. 内存布局概览2. 段地址分配详情3. 符号地址表4. 库和归档成员引用5. 交叉引用表(可选)实际应用场景1. 诊断链接问题2. 分析内存使用3. 优化代码大小4. 验证
阅读全文
摘要:目录现象描述揭秘时刻:链接器的智能优化1. 静态库的链接机制2. 死代码消除(Dead Code Elimination)3. 调试信息剥离诊断工具集:验证链接内容查看实际链接的符号分析库的依赖关系检查各个段的大小实际案例分析优化建议1. 确保关键功能被链接2. 控制链接粒度3. 使用链接映射文件分
阅读全文
摘要:目录1. 基本语法2. 常用选项和功能(1)反汇编代码(2)显示文件头信息(3)显示节区头信息(4)显示符号表(5)显示动态符号表(用于动态库)(6)显示重定位信息(7)混合显示源代码和汇编(需编译时加 -g 调试信息)(8)以 Intel 语法显示汇编(默认是 AT&T 语法)(9)控制输出范围3
阅读全文
摘要:目录1. SO_REUSEPORT 的主要用途(1) 提高 TCP/UDP 服务的并发性能(2) 实现无缝重启(Zero-Downtime Restart)(3) 防止惊群效应(Thundering Herd Problem)(4) UDP 多进程负载均衡2. SO_REUSEPORT vs SO_
阅读全文
摘要:目录1. 基本命令格式2. 常用子命令及示例(1) perf stat:统计事件(2) perf record + perf report:采样分析(3) perf top:实时监控(4) perf list:查看支持的事件(5) perf trace:系统调用追踪(6) perf annotate
阅读全文
摘要:目录🧰 基本语法:📌 常用用法示例:1. 列出所有打开的文件2. 查看某个文件被哪个进程占用3. 根据进程ID查看其打开的文件4. 查看某个用户打开的文件5. 查看某个端口被哪个进程占用6. 列出所有网络连接7. 按协议过滤(如 TCP)8. 查找某个程序名相关的打开文件9. 查看删除但仍被占用
阅读全文
摘要:目录1. 系统资源限制1.1 文件描述符(FD)1.2 进程/线程数2. 网络层优化2.1 TCP 队列2.2 端口范围2.3 连接跟踪(Conntrack)3. 服务器应用层优化3.1 Go 代码关键配置3.2 避免阻塞操作4. 客户端优化4.1 控制并发量4.2 连接复用5. 监控与排查工具5.
阅读全文
摘要:目录问题原因解决方案1. 增大 TCP SYN 队列和 Accept 队列2. 检查 SYN 队列是否溢出3. 优化服务器 Accept 性能4. 检查服务器资源限制5. 客户端优化总结 $ netstat -s | grep -i "listen" 6006609 times the listen
阅读全文
摘要:在 Linux 环境下,当 Go 程序崩溃时,默认会将崩溃信息(如堆栈跟踪、错误信息等)打印到标准错误输出(stderr)。为了将这些崩溃信息保存到文件中,可以通过以下几种方式实现: 方法 1:重定向标准错误输出到文件 在运行 Go 程序时,可以通过重定向标准错误输出(stderr)将崩溃信息保存到
阅读全文
摘要:目录启动 less常用快捷键1. 导航2. 搜索3. 标记位置4. 其他操作常用命令行选项示例总结 less 是一个功能强大的分页查看工具,适合查看大文件(如日志文件)。以下是 less 的常用方法和快捷键: 启动 less less 文件名 常用快捷键 1. 导航 向下滚动: 按 j 或 ↓:向下
阅读全文
摘要:目录1. 文件描述符限制2. 端口耗尽3. 内存消耗4. CPU 和其他资源5. 内核参数调整总结 单台机器能够建立的TCP连接个数受到多种因素的影响,包括操作系统配置、硬件资源(如内存和CPU)、应用程序逻辑以及网络环境等。以下是影响TCP连接数量的主要因素及其优化建议: 1. 文件描述符限制 每
阅读全文
摘要:目录基本语法常见选项示例 curl 是一个非常强大的命令行工具,用于在Linux、macOS和其他支持的平台上使用各种协议进行数据传输。它最常用于从服务器下载或上传文件,但也可以用来测试API端点等。curl 支持HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELN
阅读全文
摘要:目录 在Linux系统中,文件操作是日常任务的重要组成部分。下面是一些常用的命令行工具,用于创建、查看、编辑和管理文件。 touch - 创建空文件或更新文件的时间戳 touch 文件名 cp - 复制文件或目录 cp [选项] 源文件 目标文件 less/more - 分页查看文件内容 less
阅读全文
摘要:目录 Linux文件描述符和打开文件之间的关系
阅读全文
摘要:目录如何查看地址值查看当前函数参数多线程调试只暂停指定线程,其他线程不影响总结 如何查看地址值 查看下一个地址:x/x 0x12345679 以八进制显示:x/o 0x12345678 以十进制显示:x/d 0x12345678 显示更多的地址和值:x/8xw 0x12345678(显示从该地址开始
阅读全文
摘要:目录SO_RCVLOWAT (接收低水位标记)SO_SNDLOWAT (发送低水位标记)注意事项 在 GNU Linux 中,SO_RCVLOWAT 和 SO_SNDLOWAT 是用于设置套接字选项的两个标志,分别用于设置接收和发送低水位标记。这些选项可以帮助应用程序控制网络通信的流量控制。 SO_
阅读全文
摘要:目录mmap/shmgetshmfile文件夹为空ipcs/ipcrm常用函数shmxxx系列1. ftok()2. shmget()3. shmat()4. shmdt()5. shmctl()shm_open系列1. shm_open2. ftruncate3. mmap4. munmap5.
阅读全文
摘要:目录进程ID与线程ID内核级线程ID和用户级线程ID 进程ID与线程ID 在Linux中,进程和线程之间的关系有些特殊。传统的Unix系统(包括Linux)将线程实现为“轻量级进程”或“LWP”(Light Weight Process)。这意味着线程在内核中基本上被视为进程,但它们共享许多资源(如
阅读全文

浙公网安备 33010602011771号