
Linux 内存分配与回收机制详解
从 Linux 5.13 开始,vmalloc() 默认尝试使用大页映射,但需满足空闲大页充足、地址对齐及分配大小足够(通常 ≥ 几十 KB)等条件;可通过启用 CONFIG_DEBUG_VM_VALLOC 查看 dmesg 日志或结合 /...


从 Linux 5.13 开始,vmalloc() 默认尝试使用大页映射,但需满足空闲大页充足、地址对齐及分配大小足够(通常 ≥ 几十 KB)等条件;可通过启用 CONFIG_DEBUG_VM_VALLOC 查看 dmesg 日志或结合 /...

答案是连接已无用户态进程持有但内核尚未回收,需通过比对/proc/net/tcp的inode与/proc/[pid]/fd确认孤儿连接后用ss -K清理。 netstat 看到大量 ESTABLISHED 但 ps 找不到对应进程 这通常不...

排查 systemd 服务异常需先运行 systemctl status 查 Active 状态及退出码/信号,再用 journalctl -u -n 50 -o cat 查日志;注意 Restart= 策略掩盖错误、OOM Killer ...

TIME_WAIT只出现在主动发送FIN的一方,由TCP协议规定而非配置错误;其持续60秒不可修改,高并发短连接会导致端口耗尽,应优先通过长连接和合理超时设置优化,而非盲目启用tcp_tw_reuse或已废弃的tcp_tw_recycle。...

Root dispersion过高表示从权威时间源到本地时钟的累计最大误差估计值过大(通常>0.1s),说明NTP同步链路不可靠,可能导致chronyd拒绝校准或降权该源。 chronyc tracking 显示 Root dispersi...

/dev/shm 被塞满会直接触发 OOM Killer 或导致进程写入失败,Redis、PostgreSQL、Java 等依赖共享内存的应用可能静默崩溃或拒绝服务;根本原因是 fork()、shm_open() 等系统调用在 /dev/s...

cron脚本找不到命令或环境变量是因为其使用非交互式、非登录式shell,不加载用户配置文件且PATH被限制为/usr/bin:/bin。应显式设置PATH、关键变量,用绝对路径调用命令,或通过bash -l -c加载profile;调试时...

UEFI/GPT与BIOS/MBR混搭导致无法启动的主因是引导模式与分区表类型不匹配;Swap大小应按内存容量和用途合理设置;根分区建议60–80GB;SSD分区须1MiB对齐;操作前务必备份分区表。 UEFI/GPT 与 BIOS/MBR...

这是典型的“已删除但未释放文件”问题:进程仍占用已被rm删除的文件句柄,导致df显示满而du统计小;可用lsof +L1或lsof|grep deleted定位,重启进程或kill释放,禁用echo>/proc//fd/清空。 df ...

负载高但CPU空闲是因为大量进程处于D状态(不可中断睡眠),它们不占CPU却计入load average;主因是I/O阻塞(如慢盘、NFS hard挂载、驱动异常)或内存直接回收。 top 显示 CPU 使用率低,但 load averag...