Category Archives: system

system

linux 系统 bad pmd 错误处理

By | 2019-05-08

问题说明 近期一台主机报以下 kernel 警告信息: May 4 22:19:52 cztest kernel: mm/memory.c:413: bad pmd ffff9f1b3127e710(80000010ba8008e7) May 4 22:19:52 cztest telegraf: fatal error: s.freeindex > s.nelems May 4 22:19:52 cztest telegraf: goroutine 33796712 [running]: …… May 4 22:19:52 cztest kernel: ————[ cut here ]———— May 4 22:19:52 cztest kernel: WARNING: CPU: 16 PID: 1646 at mm/mmap.c:3042 exit_mmap+0x196/0x1a0 May… Read More »

linux 系统 page allocation failure 问题处理

By | 2019-04-28

问题说明 近期一台主机报以下 kernel 警告信息: Apr 28 05:30:51 cztest kernel: swapper/13: page allocation failure: order:5, mode:0x4020 Apr 28 05:30:51 cztest kernel: Pid: 0, comm: swapper/13 Not tainted 3.4.24-x86_64 #3 Apr 28 05:30:51 cztest kernel: Call Trace: Apr 28 05:30:51 cztest kernel: <IRQ> [<ffffffff8109b77b>] warn_alloc_failed+0xeb/0x130 Apr 28 05:30:51 cztest kernel: [<ffffffff8105611e>] ? __wake_up+0x4e/0x70 Apr 28 05:30:51 cztest… Read More »

linux 系统 rcu_bh self-detected stall 问题处理

By | 2019-04-26

问题说明 近期几台 linux 机器都报了以下 kernel 提示: Apr 24 21:02:09 cztest kernel: INFO: rcu_bh self-detected stall on CPU { 0} (t=0 jiffies) Apr 24 21:02:09 cztest kernel: Pid: 0, comm: swapper/0 Not tainted 3.4.95.R620.CentOS6.5-x86_64.OpenBeta.KVM #1 Apr 24 21:02:09 cztest kernel: Call Trace: Apr 24 21:02:09 cztest kernel: <IRQ> [<ffffffff810bbca2>] __rcu_pending+0x192/0x4e0 Apr 24 21:02:09 cztest kernel: [<ffffffff810a1e70>]… Read More »

linux 系统 xfs_vm_releasepage 警告问题处理

By | 2019-03-27

问题说明 最近的几台机器在同一天的不同时段都出现以下警告信息: Mar 26 20:55:03 host1 kernel: WARNING: at fs/xfs/xfs_aops.c:1045 xfs_vm_releasepage+0xcb/0x100 [xfs]() Mar 26 20:55:03 host1 kernel: Modules linked in: nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack iptable_filter ip_tables ebtable_filter ebtables ip6table_ filter ip6_tables devlink bridge stp llc xt_multiport sunrpc dm_mirror dm_region_hash dm_log dm_mod intel_powerclamp coretemp intel_rapl iosf_mbi kvm_intel kvm irqbypa ss crc32_pclmul ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper… Read More »

Linux 系统如何处理名称解析

By | 2018-12-19

简单介绍 在 Linux 系统中, 绝大多数程序依赖系统库函数来完成名称解析, 整个解析过程包含多个操作, 有些操作信息在启动程序时确定, 有些操作信息则在程序运行时确认, Linux 也提供了一些网络函数(由 glibc 提供)来控制这些操作,下图所示为一个比较典型的应用程序, 域名解析及域名服务器之间的关系图: 程序在运行后通过 glibc 提供的网络函数(gethostbyname, getaddrinfo等)来调用解析器(resolver code, 比如 nsswitch 等), 解析器则读取一些配置文件(比如 /etc/nsswitch.conf, /etc/hosts, /etc/resolv.conf) 来决定使用什么域名服务器(nameserver)以什么选项(超时时间, 重试次数), 什么优先级(先 hosts 还是 先 dns) 对指定的域名进行处理. 当然也可以使用 dns 缓存类的工具加速请求的处理, 这些工具可以是 bind(当缓存用), nscd(由 glibc 提供), systemd-resolved(由 systemd 提供). 下面则简单介绍解析器提供的几个网络函数. 函数说明 glibc 的解析器(revolver code) 提供了下面两个函数实现名称到 ip 地址的解析, gethostbyname 函数以同步阻塞的方式提供服务, 没有超时等选项,… Read More »

使用 systemd 限制系统资源的使用

By | 2018-12-10

简单介绍 在基于 Linux-3.x 内核版本的很多发行版都提供了 Systemd 来管理系统和服务. 同时也将 cgroup 功能加到了 slice, scope 和 service 三个单元中, 详见 sec-Default_Cgroup_Hierarchies. 基于这些特性我们可以很方便的通过 systemd 来限制服务或者进程对系统资源的使用, 这在单主机多服务的场景下会很有用. 下面则以 MySQL 服务为例介绍如何使用 systemd 限制资源的使用, 其它服务的限制和此等同. 示例使用 以 Centos7 系统为例, 从 redhat-resource-control 的文档来看, 官方建议通过 service 来实现资源的限制, 所以这里我们增加可以带端口参数(如果单台主机有多个 MySQL 实例的话)启动的 mysql 服务: # cat /usr/lib/systemd/system/mysql@.service [Unit] Description=MySQL Server node%i [Service] Type=forking Environment=”PORT_ARGS=%I” PermissionsStartOnly=true ExecStart=/usr/local/mysqlnode/bin/node ${PORT_ARGS} start… Read More »

Centos 系统 SLAB dentry 过高引起系统卡顿分析处理

By | 2018-10-23

问题说明 近期几台主机系统都出现卡顿几秒甚至十几秒的现象, 期间没有网络问题. 每次出现卡顿现象的时间也不固定. 服务请求数和流量也没有异常变化, 我们使用 cpu_capture 状态脚本解析 top 命令的输出, 正常情况几百毫秒即可输出, 在异常时耗时很长, 如下可以看到耗时接近 15s: begin time: 2018-09-24T23:26:25.347257868 end time: 2018-09-24T23:26:40.062807607 Total cpu usage: 241.8 373 -> cpu: 100.00, state: R, cmd: kswapd0 374 -> cpu: 100.00, state: R, cmd: kswapd1 31493 -> cpu: 20.90, state: R, cmd: curl 31196 -> cpu: 16.70, state: R, cmd:… Read More »