Linux overcommit 及 oom-killer 机制

Linux overcommit 及 oom-killer 机制

通常是因为某时刻应用程序大量请求内存导致系统内存不足造成的,这通常会触发 Linux 内核里的 Out of Memory (OOM) killer,OOM killer 会杀掉某个进程(用户态进程,不是内核线程)以腾出内存留给系统用,不致于让系统立刻崩溃。 ...

December 6, 2024 | 4 分钟 | 1984 字 | Tianlun Song
RockLinux 安装 Docker

RockLinux 安装 Docker

Docker Engine 可以在 Rocky Linux 服务器上运行原生 Docker 风格的容器工作负载。在运行完整的 Docker Desktop 环境时,有时会首选这种方式。 添加 Docker 仓库 使用 dnf 工具将 Docker 仓库添加到你的 Rocky Linux 服务器。输入: ...

November 29, 2024 | 1 分钟 | 406 字 | Tianlun Song
使用 earlyoom 提前终止 Linux 高内存占用进程

使用 earlyoom 提前终止 Linux 高内存占用进程

当我在服务器上运行一个不太重要的进程时,它的内存使用量会随实际情况不断发生变化,当它的内存超过某个阈值时,我想要 kill 掉它并重启该进程。为了满足我这个需求,我了解到了 earlyoom 这个程序。 ...

November 20, 2024 | 8 分钟 | 3714 字 | Tianlun Song
虚拟磁盘扩容后扩展 LVM vg

虚拟磁盘扩容后扩展 LVM vg

新空间分区 在使用 fdisk 工具将新增的磁盘空间分配到 LVM PV 上时,您需要按照以下步骤操作: 运行 fdisk -l 命令查看系统中当前可用的磁盘和分区信息。 运行 fdisk /dev/sdX 命令(其中 sdX 表示要调整大小的磁盘),以编辑该磁盘的分区表。 使用命令 p 查看磁盘分区表,确定要修改的分区号码。 使用命令 n 创建一个新的分区。按照提示输入分区类型、起始和结束位置等信息即可。请注意,新分区的起始位置必须与现有的 LVM PV 的终止位置相同。 使用命令 t 更改新分区的类型。选择类型 8e,以便将其设置为 LVM 分区类型。 使用命令 w 将新的分区表写入磁盘,并退出 fdisk 工具。 运行 pvresize /dev/sdXn 命令(其中 sdXn 表示新创建的 LVM PV 分区设备文件名)以将新分区添加到现有的 LVM 物理卷中。 完成以上步骤后,您可以使用 lvextend 命令扩展逻辑卷的大小,并使用 resize2fs 命令调整文件系统大小以反映新的逻辑卷大小。 ...

March 29, 2023 | 1 分钟 | 378 字 | Tianlun Song
Arch Linux 高分屏缩放方案

Arch Linux 高分屏缩放方案

linux 下高分屏适配当前在 macos/windows/Linux 中的排位尚属末尾,采用整数倍缩放效果尚好(例如 100%、200%),但是若是使用非整数倍缩放(125%、175%)常常会体会到窗口模糊。 ...

March 2, 2023 | 1 分钟 | 228 字 | Tianlun Song
PVE 批量创建、配置虚拟机 IP、网卡、启停及销毁

PVE 批量创建、配置虚拟机 IP、网卡、启停及销毁

# 从模版批量派生,100 虚拟机仅需2 min for i in {001..128}; do qm clone 336 11$i --name stl-ceph-bare-node$i --pool stl-ceph-cluster2; done # 使用 cloud-init 批量配置 ip,需在模版提前装好 cloud-init 软件包并添加设备 for i in {1..128}; do num=`echo $i | awk '{printf("%03d",$0)}'`; qm set 10${num} --ipconfig1 ip=10.24.88.$i/24,gw=10.24.88.254; done # 批量断开网络接口 for i in {002..128}; do qm set 10$i --net0 virtio,link_down=1; done # 批量开机 for i in {001..128}; do qm start 10$i; done # 批量销毁 for i in {001..111}; do qm destroy 10$i; done

February 8, 2023 | 1 分钟 | 125 字 | Tianlun Song
iptables 设置默认规则

iptables 设置默认规则

设置默认的规则 iptables -P INPUT DROP # 配置默认的不让进 iptables -P FORWARD DROP # 默认的不允许转发 iptables -P OUTPUT ACCEPT # 默认的可以出去 参考文献 iptables - Linux man

January 31, 2023 | 1 分钟 | 53 字 | Tianlun Song
m1 MacBook 安装 asahi linux 磁盘调整失败解决

m1 MacBook 安装 asahi linux 磁盘调整失败解决

尝试在 MacBook Air m1 安装 asahi linux ,在磁盘分区过程遭遇报错,具体过程没有留下来,是类似这样的报错: error: doc-id tree: record exists for doc-id 64, file-id 9665861 but no inode references this doc-id 大致解决是要进恢复模式,之后使用急救程序尝试修复。 ...

January 10, 2023 | 1 分钟 | 183 字 | Tianlun Song
Linux 禁用 SWAP

Linux 禁用 SWAP

在服务器和容器平台建议关闭 SWAP,避免内存交换影响服务器性能,甚至引发数据丢失。 一、不重启电脑,禁用启用swap,立刻生效 # 禁用命令 sudo swapoff -a # 启用命令 sudo swapon -a # 查看交换分区的状态 sudo free -m 二、重新启动电脑,永久禁用Swap ...

January 6, 2023 | 1 分钟 | 248 字 | Tianlun Song
pkg-config 自动补全 C 编译库依赖

pkg-config 自动补全 C 编译库依赖

pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。 工作原理 其工作原理如下: 当安装一个库时(例如从RPM,deb或其他二进制包管理系统),会包括一个后缀名为 pc 的文件,它会放入某个文件夹下(依赖于你的系统设置)。 例如,在 Linux 为该软件的库文件所在文件夹 lib 之下的子文件夹 pkgconfig 。 并把该子文件夹加入 pkg-config 的环境变量 PKG_CONFIG_PATH 作为搜索路径,例如在 bash 配置文件中加入一行: ...

January 5, 2023 | 2 分钟 | 614 字 | Tianlun Song