标签: 慢查询 - 文章列表
共 1 页 · 清除标签筛选
-
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。
-
Redis大key与热key的排查与解决方法(redis-cli --bigkeys、--memkeys与--hotkeys定位、UNLINK删除与拆分打散)
Redis内存莫名上涨、接口延迟抖动、主从同步变慢,多半是大key或热key在作怪。记录redis-cli --bigkeys、--memkeys、--hotkeys三个扫描器的用法与版本要求,MEMORY USAGE与OBJECT ENCODING确认单个key体量,SLOWLOG与LATENCY DOCTOR佐证,以及UNLINK异步删除、lazyfree配置、大key拆分与热key打散的具体做法。
-
MySQL主从复制延迟与报错1236、1062的排查与解决方法(Seconds_Behind_Master、Slave_SQL_Running为No与并行复制调整)
从库Seconds_Behind_Master持续增大、Slave_SQL_Running变成No、报错1236与1062,分别指向IO线程、SQL线程与回放性能三类原因。给出SHOW REPLICA STATUS各字段的读法、binlog保留期检查、并行复制参数调整和大事务定位的完整命令。
-
PostgreSQL慢查询定位与索引失效的排查方法(pg_stat_statements抓取、EXPLAIN ANALYZE看执行计划与索引不命中的常见写法)
接口越用越慢却查不出原因时,先把SQL抓出来再看执行计划。文章讲pg_stat_statements的安装与排序查法、log_min_duration_statement与auto_explain的配置、EXPLAIN ANALYZE的三处读法,以及函数包裹列、隐式类型转换、前导模糊、复合索引前导列缺失这些让索引失效的写法,还有random_page_cost与统计信息过期的处理。
-
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查当前等待关系,以及加锁顺序、间隙锁、锁升级三类成因的改法。
-
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配合,以及清理堆积连接的方法。