标签: linux - 文章列表
共 3 页 · 清除标签筛选
-
SSH登录报错Permission denied (publickey)的排查与解决方法(ssh -vvv定位、密钥权限修复与OpenSSH 8.8算法变更)
公钥登录报Permission denied (publickey)时按7个检查点排查:ssh -vvv看卡在哪一步、sshd -T确认实际生效配置、.ssh与authorized_keys的权限属主、OpenSSH 8.8禁用ssh-rsa的算法变更、用户名与端口、服务端日志定位,文中命令可直接复制执行。
-
MySQL报错Deadlock found when trying to get lock的排查方法(SHOW ENGINE INNODB STATUS定位死锁与加锁顺序调整)
业务日志里出现ERROR 1213 Deadlock found when trying to get lock,说明InnoDB检测到循环等待并回滚了其中一个事务。本文讲如何用SHOW ENGINE INNODB STATUS读取LATEST DETECTED DEADLOCK段、用innodb_print_all_deadlocks留档、8.0的performance_schema.data_lock_waits查当前等待关系,以及加锁顺序、间隙锁、锁升级三类成因的改法。
-
Docker容器退出码137与OOMKilled的排查方法(docker inspect定位、内存限额调整与JVM容器感知)
容器跑着跑着自己就没了,docker ps -a里显示Exited (137),应用日志毫无异常。137等于128加9,是进程被SIGKILL杀掉的信号。本文讲如何用docker inspect确认OOMKilled、翻dmesg内核记录、读cgroup v2的memory.events拿到真实用量,以及不同退出码139、143的区别。
-
PHP-FPM日志报server reached pm.max_children setting的排查与解决方法(pm.max_children计算与slowlog定位慢请求)
nginx日志刷connect() to unix:/run/php/php8.2-fpm.sock failed (11: Resource temporarily unavailable),php-fpm日志报server reached pm.max_children setting,多半是worker被占满。给出fpm-status状态页、按内存算pm.max_children的公式、pool配置示例、slowlog抓慢请求,以及OOM与listen.backlog的排查。
-
Redis报错MISCONF Redis is configured to save RDB snapshots的解决方法(stop-writes-on-bgsave-error、fork失败与目录权限排查)
Redis写入报MISCONF Redis is configured to save RDB snapshots,读正常写被拒,根因是上一次bgsave失败被Redis记住。按排查顺序给出info persistence确认状态、journalctl查真实报错、目录属主与systemd ProtectSystem、vm.overcommit_memory导致fork失败、容器/data挂载与SELinux上下文处理,以及config set止血后如何固化配置。
-
Linux下crontab定时任务不执行的排查与解决方法(PATH环境变量、百分号转义与日志定位)
脚本手动跑正常、放进crontab就不执行的排查记录:cron与crond服务状态、journal与/var/log/cron日志、PATH只有/usr/bin:/bin、百分号必须转义、5段与6段用户字段、/etc/cron.d属主与权限、CRLF行尾、时区与容器UTC,附一套env -i空环境复现命令。
-
Golang交叉编译后的程序在Linux上报错cannot execute binary file与no such file or directory的排查与解决方法(GOOS、GOARCH、CGO_ENABLED)
Go程序本地能跑,丢到Linux服务器或容器里却报cannot execute binary file: Exec format error,或者standard_init_linux.go:228: exec user process caused: no such file or directory。两个报错一个指向CPU架构,一个指向动态链接库。按uname、file、ldd三步定位,配合GOOS、GOARCH与CGO_ENABLED=0即可解决,附scratch与Alpine镜像的注意事项。
-
PHP上传大文件失败返回413或$_FILES为空的解决方法(upload_max_filesize与nginx client_max_body_size配置)
PHP上传大文件失败,$_FILES为空且服务端不报错,多半是php.ini、nginx与反向代理三层配置各有一处限制。按错误码定位是PHP挡的还是请求体在更外层被拒,再逐一放开upload_max_filesize、post_max_size与client_max_body_size,附curl复现与前端预校验写法。
-
MySQL报错Too many connections的排查与解决方法(max_connections与连接泄漏定位)
MySQL出现ERROR 1040 Too many connections时,先用Threads_connected与Threads_running判断是并发高还是连接没释放,再用processlist按来源IP聚合定位到具体服务。文中包含8.0.14管理端口救急、max_connections与线程级buffer的内存账、HikariCP与Druid的maxLifetime和wait_timeout配合,以及清理堆积连接的方法。
-
Java进程CPU占用过高的排查方法(top -H与jstack定位到具体代码行)
Java进程CPU打满时先分清us高还是sy高,再用top -Hp找出高CPU线程,把线程id转十六进制后到jstack输出里搜nid定位到具体代码行。文中包含连续三次抓栈对比、容器内jstack失效的两种原因、GC线程占高的判断方法,以及正则回溯、JSON序列化等常见代码原因。