标签: linux - 文章列表
共 3 页 · 清除标签筛选
-
Linux服务器iowait偏高与磁盘IO打满的排查方法(iostat与iotop定位进程、await队列分析与脏页回写参数调整)
服务器top里wa很高但CPU空闲,多半是磁盘IO堵了。文中给出固定排查顺序:vmstat看b列确认是否有进程卡在IO上,iostat -x看r_await、w_await与aqu-sz判断堵塞程度,iotop、pidstat与/proc/PID/io定位到进程,biosnoop与blktrace下钻到文件和块层,fio打基线,最后调整vm.dirty_ratio等脏页回写参数与IO调度器。附各参数默认值。
-
Nginx报错504 Gateway Time-out的排查方法(upstream timed out定位、proxy_read_timeout与fastcgi_read_timeout配置)
504 Gateway Time-out与502的区别在于后端只是慢,不是挂了。按error.log里upstream timed out尾部的connecting、sending、reading三个词,定位该改proxy_connect_timeout、proxy_send_timeout还是proxy_read_timeout,默认值都是60s,连PHP-FPM时换成fastcgi_read_timeout。再把两个耗时变量打进日志找出慢URL,核对PHP的max_execution_time 30s与MySQL锁等待50s。
-
Linux下git合并冲突与子模块报错的排查方法(CONFLICT冲突标记、reference is not a tree与detached HEAD定位)
按CONFLICT冲突标记、Your local changes会被覆盖、fatal: reference is not a tree、MERGE_HEAD exists四类报错串分开处理:git status里both modified与deleted by us的读法、diff3与zdiff3冲突视图怎么开(zdiff3需Git 2.35.0以上,Ubuntu 22.04源里的2.34.1不支持)、rebase下--ours与--theirs语义反转、冲突标记漏删的git grep拦截、子模块update与sync、detached HEAD成因、删除子模块的完整四步。
-
Linux下Docker磁盘写满与overlay2目录暴涨的排查方法(docker system df定位、容器json日志限制与no space left on device解决)
Docker把磁盘写满时,容器退出、拉镜像报no space left on device。本篇按docker system df、df -i、du定位空间去向,讲清overlay2层结构与容器json-file日志撑爆盘的处理:truncate截断、daemon.json设max-size与max-file、prune从保守到激进的顺序,以及inode耗尽、句柄未释放和data-root迁移几种情况的处置办法。
-
Linux报错Too many open files的排查与解决方法(ulimit文件描述符上限、systemd LimitNOFILE与nginx worker_connections)
进程fd打到软限制1024时的完整排查路径:区分EMFILE与ENFILE、从/proc/PID/limits读真实上限、systemd服务加LimitNOFILE而不是改limits.conf、容器ulimit、nginx的worker_rlimit_nofile与worker_connections配套调整,以及用fd数量趋势判断是配置小还是代码在泄漏。
-
Linux服务器端口访问不通的排查方法(Connection refused、Connection timed out与No route to host的区分定位)
同样是连不上,Connection refused秒回、Connection timed out等满超时、No route to host又是另一层。按三种报错串分诊,给出ss、nc、curl、nft、tcpdump、ping -M do与iperf3的定位命令,覆盖监听地址、安全组、rp_filter与MTU几类常见原因。
-
Elasticsearch集群报red状态与分片UNASSIGNED的排查方法(allocation explain定位、磁盘水位线与副本数调整)
Elasticsearch集群health变red、分片显示UNASSIGNED,写入报cluster_block_exception。用_cat/shards与_cluster/allocation/explain定位到具体decider,处理磁盘水位线85%、90%、95%,副本数与节点数不匹配、max_shards_per_node上限及分配开关未恢复。
-
git clone报错Failed to connect to github.com port 443与SSL certificate problem的排查方法(代理配置、http.version与CA证书修复)
git clone拉不下来时,报错串可以分成两类:带port 443或Couldn't connect to server的查网络、代理与HTTP/2协议版本;带SSL certificate problem的查CA证书与系统时间。文中给出curl探测、git config --list --show-origin定位配置来源、http.version改HTTP/1.1、sslCAInfo指定证书、sslVerify临时绕过的完整命令。
-
Java报错java.lang.OutOfMemoryError: Java heap space的排查方法(jmap与jcmd导出堆快照、MAT定位泄漏点与-Xmx调整)
Java heap space只说明堆分配不下了,谁占着堆要看堆快照。用-XX:+HeapDumpOnOutOfMemoryError留现场,jcmd与jstat判断是泄漏还是-Xmx给小了,再用MAT的Dominator Tree追引用链,顺带说清容器里UseContainerSupport与OOMKilled的关系。
-
Nginx报错502 Bad Gateway的排查方法(connect() failed与upstream prematurely closed connection定位、proxy_read_timeout与keepalive配置)
502 Bad Gateway基本都出在nginx与后端之间这一段。按error.log里的报错串分成四种情况定位:connect refused、upstream prematurely closed、upstream timed out、no live upstreams,再配keepalive与三个proxy超时参数,附上ss、curl与文件描述符的检查命令。