编程技巧 - 文章列表
-
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序列化等常见代码原因。
-
Windows端口被占用的排查方法(netstat与PowerShell定位进程并结束)
本地服务起不来报WinError 10048或nginx的10013,是端口被占或落在系统保留区间的典型表现。记录netstat -ano配合findstr定位PID、tasklist查进程、taskkill结束进程的做法,以及用Get-NetTCPConnection一步拿到OwningProcess的写法,附带PID 4被http.sys占用、Hyper-V保留端口段和TIME_WAIT三种特殊情况的处理命令。
-
pip安装第三方库超时报错的解决方法(换国内镜像源、调超时与离线wheel安装)
装Python包卡在下载阶段、报ReadTimeoutError或反复Retrying,多半是pypi.org在国内访问不稳定。记录临时换源、pip config set永久配置国内镜像、requirements.txt内嵌源地址、放宽timeout与retries、走代理与离线wheel安装的整套做法,附上几个镜像源的实测情况和extra-index-url的依赖混淆坑。
-
PostgreSQL查看表和数据大小的方法(pg_relation_size与pg_total_relation_size)
PostgreSQL里看表占了多少空间,别只信图形化工具的估算。本文讲清pg_relation_size、pg_total_relation_size、pg_indexes_size三个函数的口径差别,给出换算MB/GB和按大小排全库表的SQL,并说清toast与索引对空间统计的影响。
-
Linux磁盘空间满了但du统计对不上的解决方法(lsof找回已删除未释放文件)
df -h显示磁盘快满但du统计对不上的根因是文件被删而进程仍占着句柄。本文讲如何用lsof +L1找出已删除未释放文件,用truncate清空/proc句柄立即释放空间,并解释du与df统计口径差异及logrotate预防。
-
Windows下获取文件hash值的方法(certutil与Get-FileHash)
Windows 自带 certutil 与 Get-FileHash 即可计算文件 MD5、SHA256 等 hash 值,无需第三方软件。覆盖 WinXP 到 Server 2022 各版本的可用命令、算法参数,以及批量校验一个目录下安装包的一行写法,并说明比对 hash 时的注意事项。
-
CentOS 7停服之后,服务器上的Linux该换成哪个
CentOS 7 在 2024 年 6 月底停服之后,服务器装什么 Linux 反倒成了要纠结的事。这篇是换机器时整理的:几个主流发行版当前的版本和支持周期、x86-64-v3 这个容易让人白跑一趟的硬件门槛、Rocky 不保留旧次版本这个坑,还有从 deb 系换到 rpm 系第一周要用的命令对照。
-
测试
-
python 中,为什么 print(100 in (100)) 会报错 ,print(100 in [100])则不会报错
本文主要介绍了Python中元组与列表的语法区别及其常见错误。当括号内仅含一个元素时,如(100),Python会将其识别为整数而非元组,导致in操作符报错。正确的写法应为(100,),以明确表示元组类型。相比之下,列表[100]无需逗号即可正确表示。文章还解释了Python这样设计的目的是为了避免与数学表达式或函数调用产生歧义,并提供了修复方法及使用建议,强调在实际开发中应根据需求选择合适的容器类型。