Centos 系统 SLAB dentry 过高引起系统卡顿分析处理
问题说明
近期几台主机系统都出现卡顿几秒甚至十几秒的现象, 期间没有网络问题. 每次出现卡顿现象的时间也不固定. 服务请求数和流量也没有异常变化, 我们使用 cpu_capture 状态脚本解析 top 命令的输出, 正常情况几百毫秒即可输出, 在异常时耗时很长, 如下可以看到耗时接近 15s:
begin time: 2018-09-24T23:26:25.347257868 end time:...
使用 repl_mysql 监控表数据变更
介绍
repl_mysql 在 replication 的基础上增加了更多的功能选项, 基于此可以仅关注指定选项的表的更新. 由于原理同 MySQL 的主从复制, replication 即通过伪造 slave 的方式接收 MySQL master 端的所有更新操作, 不同于真实的 slave, repl_mysql 不需要重新组织接收到的数据到 在文章 IPv6 使用及注意事项 中我们提到了应用程序如果要支持 IPv6, 需要关注相关数据库的修改, 不过由于业务设计的不同, 有些程序可能使用 本文介绍常用工具及软件使用 ipv6 时候的注意事项, 以及应用程序支持 ipv6 需要进行的检查列表. 下文中提到的 usql 是一个统一的数据库连接工具, 目前支持常用的各种数据库, 包括 PostgreSQL, MySQL, Oracle, SQLite3, Microsoft SQL Server 以及最近几年出现的较新的数据库, 比如 clickhouse, Cassandra 等, 详见 database-support. 通常情况下 usql...
在一些特定的业务中, 我们更希望成批的处理一些数据而不是来一条处理一条, 比如消息队列处理等场景, 可以一次取几百个一次处理以提高处理能力, 不过这样也带来另一个问题, 生产者短时间内不能生产几百个的时候我们应该怎么处理. 一些软件工具的 client 驱动可能会提供一些定时器的功能, 比如可以处理指定时间内(比如 2s)的数据. 这种情况下我们就可以通过几种方式批量处理数据, 达到指定数量时处理, 达到指定时间时处理, 还有一种变通的方式则是每次批量处理前检查下待处理数据的数量, 取出一定数量的数据即可. 下面的介绍主要是前面两种方式. 我们可以通过计时器系统调用简单实现上述提到的第二种方式 - 近期陆续碰到几台主机 df 卡住的问题, 监控程序由于超时引起相关的警报, 系统环境和 strace df 如下所示: strace 显示卡在了 /proc/sys/fs/binfmt_misc 状态中: 我们现有的 redis 监控包括 zabbix, cacti 以及定制的 redis-sentinel-notify 脚本. 在不进行 sentinel 切换的前提下, 很难发现 redis 是否出现了其它错误, 比如连接占满, 同步异常, 后台线程中断等. redis 的日志级别提供了更为详细的诊断的信息. 从 redis 源代码中搜索...
Read More
有效升级 MySQL 表的 ip 字段
char
, varchar
等存储 ip 字符串, 有些程序也可能考虑到索引效率使用 int unsigned
存储 ip...
IPv6 使用及注意事项
混合服务
表示工具可以同时服务 ipv4 和 ipv6, 很多软件在代码层做了 AF_INET
和 AF_INET6
标识的判断, 数据可以复用同一个 socket, 比如下面提到的 nginx,...
使用 usql 连接各种不同的数据库
usql 介绍
分组处理方式简单介绍
介绍
计时器系统调用
Read More
centos7 系统 df hang 问题处理说明
问题描述
kernel-3.10.0-514.21.2 systemd-219-57
监控 redis warn 级别日志信息
介绍