主页

ApacheBench (ab) 工具深度指南:突破单机并发限制与性能优化最佳实践

问题:ab -c 10000 报错 “too many open files” 在使用 Apache Benchmark (ab) 进行高并发负载测试时,当设置较高的并发连接数(如 -c 10000)时,经常会遇到以下错误: too many open files 这是因为操作系统对单个进程可以同时打开的文件描述符数量有默认限制。在 Linux 系统中,每个 TCP 连接都会消耗一个文件描述符,所以高并发测试很容易达到这个限制。 解决方案:增加文件描述符限制 临时解决方案 使用 ulimit 命令可以临时增加当前会话的文件描述符限制: ulimit -n 65535 执行此命令后,再运行 ab 测试: ab -n 100000 -c 10000 http://yo...

阅读更多

Linux网络监控实战:使用NetHogs实时追踪进程级带宽占用与分析指南

sudo nethogs是一个在Linux系统中使用的命令行工具,用于监控网络流量。通过这个命令,用户可以实时查看哪些进程正在使用网络带宽。这对于诊断网络问题、监控网络使用情况或者仅仅是为了了解哪些应用程序正在访问网络非常有用。 安装 Nethogs 在大多数Linux发行版中,nethogs不会预装。你可以通过包管理器来安装它。 对于基于Debian的系统(如Ubuntu),可以使用: sudo apt-get install nethogs 使用 Nethogs 以下命令启动nethogs: sudo nethogs sudo是必需的,因为nethogs需要足够的权限来监控网络接口和查看所有进程的网络活动。 功能和输出解释 启动n...

阅读更多

解决VS Code Remote-SSH连接失败:glibc版本不兼容问题的排查与修复指南

问题描述 在VSCode更新到1.86版本后,一些之前运行正常的Remote-SSH连接突然无法使用。这个问题主要出现在Ubuntu 18.04和更早版本的Linux系统上,而在较新的系统如Debian 12上则不受影响。 报错 更新1.86完成后,原来好好的 Remote SSH 再也连不上了,提示 GLIBC 版本太低 Warning: Missing GLIBC >= 2.28! from /lib/x86_64-linux-gnu/libc-2.27.so Error: Missing required dependencies. Please refer to our FAQ https://aka.ms/vsc code-remote/faq/old-linux ...

阅读更多

Linux内核调试实战:使用kallsyms追踪内核符号、函数调用与模块定位技术

问题 Linux 内核:能否在编译或者运行环境中找出 a 模块调用的某个函数来源于另外哪个模块吗? 解决方案:kallsyms kallsyms 是 Linux 内核中一个重要的调试工具,它允许用户在内核运行时查看和解析内核符号。 kallsyms 的主要功能是提供内核符号的地址和名称,这些符号包括函数、变量、结构体、枚举等。用户可以通过使用 kallsyms 来查找内核中特定符号的地址,或者通过解析内核符号的地址来确定符号的名称。 kallsyms 的使用 只需要在内核命令行中添加 kallsyms=1 即可。添加 kallsyms=1 后,内核将在启动时生成一个符号表,并将符号表存储在 /proc/kallsyms 文件中。 用户可以通过使用 cat 命令来查看 /pr...

阅读更多

Python深浅拷贝详解:内存管理机制、实现原理与常见陷阱

引言 写torch过程中接触到torch.clone() 和 python.copy() 理解Python中的对象复制概念 在Python中,有三种主要的方式来”复制”一个对象: 赋值操作(=):创建对原始对象的引用,而非复制对象本身 浅复制(Shallow Copy):创建一个新对象,但内部元素仍指向原始对象 深复制(Deep Copy):创建一个全新的对象,包括所有嵌套的对象 赋值操作 list1 = [1, 2, [3, 4]] list2 = list1 # 赋值操作,list2引用与list1相同的对象 list2[0] = 5 print(list1) # 输出:[5, 2, [3, 4]] 在这个例子中,list1和list2指向内存中...

阅读更多

NVIDIA GPU架构深度解析:CUDA Cores与Tensor Cores的技术原理与性能差异比较

区别 CUDA Cores 和 Tensor Cores 是 NVIDIA GPU 显卡中的不同类型的处理单元,它们设计用来执行不同类型的计算任务。 CUDA Cores: CUDA Cores(Compute Unified Device Architecture Cores)是用于处理通用计算任务的核心。 它们是最基础的处理单元,能够执行浮点和整数操作,适用于各种计算密集型任务,包括图形渲染、科学计算和机器学习算法。 CUDA Cores 的设计侧重于提供高吞吐量的串行计算能力,适合广泛类型的通用计算任务。 Tensor Cores: Tensor Cores 是 NVIDIA 在其后代 GPU 架构(如 Volta、Turing 和 Ampere)中引...

阅读更多

通过vLLM的ROCm适配揭示AMD GPU在AI推理领域的支持现状

从vllm的rocm 适配来看AMD gpu的 支持情况 vllm 的 setup.py 中支持的RCOM structure 有: # Supported NVIDIA GPU architectures. NVIDIA_SUPPORTED_ARCHS = {"7.0", "7.5", "8.0", "8.6", "8.9", "9.0"} ROCM_SUPPORTED_ARCHS = {"gfx90a", "gfx908", "gfx906", "gfx1030", "gfx1100"} # SUPPORTED_ARCHS = NVIDIA_SUPPORTED_ARCHS.union(ROCM_SUPPORTED_ARCHS) 支持的架构有: gfx90a: cDNA2 M...

阅读更多