发生 SLAB 内存泄漏该怎么办

通常应用程序主要通过类似 malloc 等标准函数来进行内存的分配使用, 不过在 Linux 中, 内核无法使用标准函数, 一般通过 SLAB Allocator 机制来进行内存的分配. 各个子系统, 驱动以及内核模块等都可以通过 SLAB Allocator 机制分配内存, 同时该机制还可以当作缓存来使用, 这点主要是针对经常分配并释放的对象. 从内核 2.6 版本开始, slab 分配器有两个替代分配器: 分配器 用途...

为什么 DISTINCT 返回错误的结果

问题说明 在通过 SELECT DISTINCT 进行查询的时候发现结果一直返回空, 然而通过 SELECT 却能返回正常的结果, 如下所示: -- Server version: 5.6.38-83.0-log Percona Server mysql > select distinct(name) from t_web_column where column_id IN (946390,...

为什么 Percona MySQL 开启 NUMA 选项后启动很慢

最近在使用新版本 Percona MySQL 的时候, 发现启动巨慢, 且启动时间随 innodb_buffer_pool_size 的大小成正比, 配置的 innodb_buffer_pool_size 值越大, 启动时间就越长, 所耗时间约为 T = innodb_buffer_pool_size(GB), 如下所示, 我们将 innodb_buffer_pool_size 配置的足够大, 就会发现实例启动耗时约 440s: Jul 7 12:00:44...

运维同学需要掌握的 MySQL 数据库知识

很多公司的运维同学或许都身兼数职, 其中打交道最多的应该要数操作系统和数据库, 从大的层面来看, 我们需要对系统和数据库都有一定的了解才能让服务稳定的运行. 不过要熟悉数据库一般都需要大量的实践才能对其有一定程度的理解, 这样才能避免很多故障产生. 下面则简单介绍运维同学需要掌握的 MySQL 数据库知识, 以便大家对 MySQL 的操作有个整体的认识: MySQL 方面知识 系统方面的知识 性能相关 定期巡检 管理与开发规范 其它 MySQL 方面知识 了解 MySQL 的架构设计 不同版本的...

git 使用记录

git 技巧 git-tips git 开发流程 git-flow github-flow 忽略文件 仓库下的 .gitignore 支持正则匹配, 在提交时忽略指定的文件. 基本使用 git status [-s/--short] git diff git diff --staged git diff --cached git...

什么情况下 MySQL slave 不会更新数据

什么情况下 MySQL slave 的 sql_thread 线程不会更新数据? 目前主从有两个原因: 1. 主从 server-id 相同 如果设置以下选项: replicate-same-server-id = 0 并且主从的 server-id 相同, 则 sql_thread 线程会忽略更新收到的数据; 我们应该保证主从配置不同的 server-id 值. 2....

MySQL 8.0 特性概览

MySQL 8.0 版本比之 5.7 做了很大的变化, 比较明显的主要有去掉了查询缓存, 密码验证方式变更, 默认编码变更等方面, 部分特性随着 8.0 最新版的发布也会存在小幅度的改变, 更多变化可以参考 what-is-new-in-mysql8.0 了解更多. 如果是从 5.7 升级到 8.0 可以参考 upgrading-from-previous-series.html 了解更多的不同. 下面则主要介绍 MySQL 常用特性的一些变化. 常用参数变更...

如何避免销毁 zfs 镜像后出现 Unable to automount 错误提示

简要说明 在正常创建 zfs 镜像后, 如果需要访问镜像的文件, 可以直接访问当前 zfs 系统下的 .zfs 隐藏文件, 在访问镜像目录内容的时候会触发 zfs 的 automount 自动挂载, 这点有点像 Linux 内核提供的 automount 属性, 即默认不挂载镜像设备文件, 仅在访问的时候自动挂载, 如下所示: # zfs...

ssh/scp/rsync 使用技巧

我们经常通过 ssh/scp 免密登录的方式来自动化的批量执行一些操作, 不过在实际的使用中可能经常碰到一些中断自动连接的问题. 下面则主要介绍如何避免这些问题并提供一些使用建议. 引起中断的问题 Host key 添加提示 指纹信息变更 连接超时 公钥不匹配引起登录失败 隐藏进程说明 使用建议 引起中断的问题 目前主要由以下几方面问题会引起连接中断: Host key 添加提示 在连接新的机器的时候, 通常需要将新机器的加密指纹信息添加到自身的 ~/.ssh/known_hosts 中. 如下所示, 这种提示需要我们手动确认,...

在云中使用 proxy protocol

背景说明 在 http/https 的协议中, 我们可以通过 X-Forwarded-For 从 Header 信息中获取到离服务端最近的 client 端的 IP 地址, 如果请求经过了多级代理且每级代理都开启此特性, 就可以获得真实有效的用户 IP. 不过这种特性是基于应用层实现, 并不适用于传输层. 在基于 tcp 层的转发场景中, 获取真实有效的用户 IP 显得更为重要. Linux...