iostat 命令参数解释与磁盘 I/O 排查方法
在 Linux 服务器上排查性能问题时,磁盘 I/O 是一个很常见的方向。比如系统响应变慢、数据库查询变慢、日志写入延迟、程序偶尔卡住,或者 CPU 看起来不高但业务处理速度明显下降,这些情况都可能和磁盘 I/O 有关。 iostat 是一个非常常用的 Linux 性能分析命令,可以用来查看 CPU 使用情况和磁盘设备的读写情况。它适合快速判断磁盘是否繁忙、…
在 Linux 服务器上排查性能问题时,磁盘 I/O 是一个很常见的方向。比如系统响应变慢、数据库查询变慢、日志写入延迟、程序偶尔卡住,或者 CPU 看起来不高但业务处理速度明显下降,这些情况都可能和磁盘 I/O 有关。 iostat 是一个非常常用的 Linux 性能分析命令,可以用来查看 CPU 使用情况和磁盘设备的读写情况。它适合快速判断磁盘是否繁忙、…
在 Linux 服务器上做网络优化时,经常会看到一个关键词:BBR。 BBR 的全称是 Bottleneck Bandwidth and RTT,是一种 TCP 拥塞控制算法。它的目标不是简单粗暴地“把速度拉满”,而是根据网络链路的瓶颈带宽和往返时延,尽量让连接保持较高吞吐,同时减少不必要的排队延迟。 简单理解,传统拥塞控制算法很多时候会把丢包当成网络拥塞的…
在 Ubuntu Server 20.04 中,系统默认可能会安装 cloud-init 。刚开始看到这个服务时,很多人会有点疑惑:自己明明是在物理机或普通虚拟机里安装的 Ubuntu,并不是云服务器,为什么启动时还会出现 cloud-init 的执行过程? cloud-init 主要是为了云计算环境设计的。它可以在系统第一次启动时,根据云平台提供的 met…
在 Ubuntu 20.04 上配置网络时,有时候会遇到 DNS 解析不稳定的问题。比如内网主机名解析不了、访问网页偶尔很慢、服务器能 ping 通 IP 但无法解析域名,或者系统自动获取到的 DNS 服务器并不是自己想用的地址。 这种情况下,可以通过 systemd-resolved 来手动指定 DNS 服务器。这个方法比较适合服务器、开发机、内网环境、虚…
apt 更新时报 No module named debian.deb822 的处理方法 # 在 Ubuntu 系统中执行 apt update 或系统更新时,有时会遇到一些和 Python 模块相关的报错。表面上看是 apt 出了问题,但实际原因可能是某个系统组件或安装包在更新过程中调用了 Python 脚本,而脚本依赖的模块不存在或环境异常。 我之前遇到…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # Centos系统 TEXT 复制代码 date -R timedatectl set-local-rtc 1 timedatectl…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 最常用的转发,从 192.168.1.21:59388 转发到 192.168.1.20:5938 TEXT 复制代码 pro='t…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 直接来命令 Bash 复制代码 curl -o /dev/null -w % { time_namelookup } ::% { t…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # $0 这个程式的执行名字 $n 这个程式的第n个参数值,n=1..9 $* 这个程式的所有参数,此选项参数可超过9个。 $# 这个程…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # TEXT 复制代码 NAT_Host='1.1.1.1' Dst_Host='2.2.2.2' iptables -t nat -A…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 写了个脚本签到,但是不想总是在确定的时间签到,不然在数据库里面的记录太假了,所以需要在确定的时间段内,随机选个时间执行,最后想到了使…
原始操作记录 # 1.使用时间相关的随机数 利用data命令生成输出unixtimestamp(%s)和当前时间的纳秒数据(%N,精确到亿分之一秒) 前者保证在不同秒数之内输出不重复 后者保证在同一秒内数字不重复 两者组合就可以了 TEXT 复制代码 date +%s%N 这个方法不依赖系统 只要时间不停止,就一直可以得到不重复的为随机数 2.系统shell…
原始操作记录 # 直接用过滤器的生成规则去删除TC的filter会导致所有过滤器都被清空 不像class,添加后 想要删除很简单 直接把TC命令中的add换成del就可以了,如果class重复,就会像添加路由出错时候一样有提示。 但是filter不一样,相同规则的filter可以不断持续的添加,规则添加后,内核会用不同的句柄号(handle)来区分, 删除一…
原始操作记录 # 0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) TEXT 复制代码 command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 & 1)command:表示shell命令或者为一个可执行程序 2)>:表示重定向到哪里 3)/de…
在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # TEXT 复制代码 rename 's/\.JPG/.jpg/' *.JPG 有可能提示安装 rename 软件包,安装就行 命令关键在于正则表达式…
原始操作记录 # 用户列表文件 /etc/passwd 用户组列表文件 /etc/group 查看系统中有哪些用户 TEXT 复制代码 cut -d : -f 1 /etc/passwd 查看可以登录系统的用户 Bash 复制代码 cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1 关键理解 # 这…
原始操作记录 # TEXT 复制代码 command1 & command2 & command3 表示三个命令同时执行 TEXT 复制代码 command1; command2; command3 表示不管前面命令执行成功没有,后面的命令继续执行 TEXT 复制代码 command1 && command2 && command3 表示只有前面命令执行成功…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # nbd的增加分区的功能默认是关闭的,需要指定max_part这个参数。这个参数指定了一个nbd设备可以有多少个分区。 TEXT 复制…
操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 条件变量替换: Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换条件放在{}中 (1) ${valu…