[{"content":"第一行 系统运行时间 用户数 平均负载 第二行 总任务数 运行任务数 休眠任务数 停止任务数 僵尸进程数 第三行 用户占cpu百分比 系统占cpu百分比 nice值占比（CPU运行被调整过优先级的进程所花费的时间百分比） 空闲CPU百分比 等待I/O的CPU时间百分比（磁盘，网卡，键鼠） 硬中断占比 软中断占比 虚拟cpu等待实际物理CPU服务的时间百分比 第四行 内存使用情况 总内存 空闲内存 使用内存 缓冲内存 第五行 交换区使用情况 总交换分区 空闲交换分区 使用的交换分区 可用交换分区 第六行 进程id 用户 优先级 nice值 虚拟内存 物理内存 共享内存 运行状态 CPU使用率 内存使用率 运行时间 命令名称\n","date":"2026-10-18T13:33:10+08:00","permalink":"/p/top%E5%91%BD%E4%BB%A4%E6%9F%A5%E7%9C%8B/","title":"top命令查看"},{"content":"背景 在 Rocky Linux 9 上部署一个静态站点，使用 Nginx 作为 Web 服务器。整个过程涉及软件安装、配置编写、服务管理等环节。\n安装 dnf install -y nginx nginx -v 配置文件 站点配置放在 /etc/nginx/conf.d/ 目录下：\nserver { listen 80; server_name example.com; root /var/www/example; index index.html; location / { try_files $uri $uri/ /index.html; } location ~* \\.(jpg|png|css|js)$ { expires 7d; add_header Cache-Control \u0026#34;public\u0026#34;; } } 踩坑记录 1. SELinux 拦截 如果 SELinux 是 Enforcing 状态，Nginx 访问 /var/www/ 外的目录会被拒绝：\n# 查看状态 getenforce # 方案一：设置目录上下文 semanage fcontext -a -t httpd_sys_content_t \u0026#34;/var/www/example(/.*)?\u0026#34; restorecon -Rv /var/www/example # 方案二：放行 Nginx 访问网络 setsebool -P httpd_can_network_connect 1 2. 防火墙与安全组 服务器内部防火墙开放了端口，但云厂商的安全组是独立的一层，必须单独放行，否则公网访问不了。\n# firewalld firewall-cmd --permanent --add-service=http firewall-cmd --reload # 验证端口监听 ss -tunlp | grep :80 性能参考 静态页面在回环压测下：\n并发 QPS P99 100 约 20000 14ms 实际公网性能瓶颈通常是带宽，而不是 Nginx 本身。17KB 的页面在 10Mbps 带宽下理论上限约 70 QPS。\n小结 静态站点用 Nginx 托管，资源消耗极低，1.6G 内存的机器绰绰有余 SELinux 和云安全组是最容易忽略的两处 图片多的站点建议接 CDN，比升带宽划算 ","date":"2026-10-17T00:00:00+08:00","permalink":"/p/nginx-static-site/","title":"Nginx 静态站点部署实践总结"},{"content":"通用排查三步 # 1. 看 Pod 状态和事件 kubectl describe pod \u0026lt;pod\u0026gt; -n \u0026lt;ns\u0026gt; # 2. 看日志（当前容器） kubectl logs \u0026lt;pod\u0026gt; -n \u0026lt;ns\u0026gt; # 3. 看上一次崩溃的日志 kubectl logs \u0026lt;pod\u0026gt; -n \u0026lt;ns\u0026gt; --previous 常见状态与根因 CrashLoopBackOff 容器反复启动失败。常见原因：\n原因 排查方式 应用启动报错 kubectl logs --previous 配置错误 检查 ConfigMap / Secret 挂载 依赖未就绪 检查数据库、中间件连通性 探针失败 检查 livenessProbe / readinessProbe 参数 OOM kubectl describe pod 看 Last State Pending Pod 无法调度到节点。常见原因：\n# 看调度失败原因 kubectl describe pod \u0026lt;pod\u0026gt; -n \u0026lt;ns\u0026gt; | grep -A10 Events 资源不足：节点 CPU / 内存不够 → kubectl describe node 污点不匹配：节点有 taint，Pod 没容忍 亲和性限制：nodeAffinity / podAffinity 过严 PVC 未绑定：kubectl get pvc -n \u0026lt;ns\u0026gt; OOMKilled 内存超限被杀：\nkubectl describe pod \u0026lt;pod\u0026gt; -n \u0026lt;ns\u0026gt; | grep -i \u0026#34;last state\u0026#34; -A5 处理：\n上调 resources.limits.memory 排查应用内存泄漏 调整 JVM / 运行时堆参数 ImagePullBackOff 镜像拉不下来：\n镜像名 / tag 写错 私有仓库未配置 imagePullSecrets 网络不通（节点无法访问镜像仓库） # 测试节点能否拉取 kubectl get events -n \u0026lt;ns\u0026gt; --sort-by=.lastTimestamp Evicted 节点资源压力导致 Pod 被驱逐：\nkubectl describe node \u0026lt;node\u0026gt; | grep -i \u0026#34;memory pressure\\|disk pressure\u0026#34; 清理节点磁盘或内存，检查是否有 Pod 没有设置 resources requests。\n万能排查命令 # 全局事件（按时间排序） kubectl get events -A --sort-by=.lastTimestamp | tail -30 # 资源占用 kubectl top pod -n \u0026lt;ns\u0026gt; kubectl top node # 查看 Pod 所在节点 kubectl get pod \u0026lt;pod\u0026gt; -n \u0026lt;ns\u0026gt; -o wide 小结 排障的核心顺序是：看状态 → 看事件 → 看日志 → 定位根因。不要一上来就重启 Pod，那样会丢失现场。\n","date":"2026-10-15T00:00:00+08:00","permalink":"/p/k8s-pod-troubleshooting/","title":"Kubernetes Pod 排障速查手册"}]