Linux kswapd0 进程占用 CPU 过高的问题
今天突然发现向我的服务器提交代码非常慢,巨慢,然后测试版的应用请求响应也非常慢,一开始以为是网络问题,但登录服务器一看,发现 CPU 很忙。
2核2G 的 Ubuntu,load average: 1.93, 0.99, 0.55。
排名第一的进程是 kswapd0,问了一下 kimi,得到的回答是:
kswapd0 是 Linux 系统中的一个内核线程,主要负责虚拟内存管理中的换页操作。当系统的物理内存不足时,kswapd0 会执行换页操作,将一些不常用的内存页从物理内存移动到磁盘上的交换空间(swap space),以释放物理内存供其他进程使用。这个过程会消耗大量的 CPU 资源,因此如果 kswapd0 进程占用 CPU 过高,通常意味着系统正在进行大量的换页操作,可能是因为物理内存不足。
常见的 RAID 存储级别
独立磁盘冗余阵列(RAID)是一种存储技术,通过将两个或多个硬盘驱动器(HDD)或固态硬盘(SSD)合并成一个协调的存储单元或阵列,从而创建数据丢失的故障安全机制。
常见的 RAID 级别:
- RAID 0:条带化(数据分块)但没有冗余,提供较高的读写性能。
- RAID 1:镜像,数据完全复制到另一个驱动器,提供容错能力。
- RAID 5:条带化加分布式奇偶校验,提供数据冗余和读取性能。
- RAID 6:类似于RAID 5,但提供更高级别的容错能力。
- RAID 10:RAID 1+0,将RAID 1镜像组合成RAID 0条带化,提供较高的容错能力和读写性能。
- RAID 50:RAID 5组合成RAID 0,提供较高的性能和容错能力。
- RAID 60:RAID 6组合成RAID 0,提供更高级别的性能和容错能力。
RAID 级别对比
常见的 RAID 级别简介
不要在腾讯云 CVM 中使用代理软件,建议使用其他方案替代
前两天刷到一个帖子:
简单来说,就是楼主使用 clash 拉取 docker 镜像,然后他的腾讯云机器就被封了。
好几年前,为了加速使用 packgist 等仓库,我在阿里云的服务器装了 v2ray,后来也收到了阿里云的警告邮件,好在阿里云没有直接封机器,给了整改时间。
所以可以确认的是,国内的云服务器都会扫描服务器信息,所以要怎么做你懂的。
如果为了加速下载境外的开源代码或者仓库,建议使用共享本地代理的方法,或者干脆下载到本地再上传。
共享本地代理给云服务器的方法我之前有写过,参考这篇文章。
当然,使用国内镜像也不是不可以,但很多国内镜像可用性极差,甚至已经停掉了,简直就是浪费时间浪费生命。
比如 docker 镜像,现在晚上搜到的一堆国内镜像都停掉了,坑爹。
上传身份证页面的默认背景图
最近的项目需要审核用户信息,做了身份证上传页面,正好看到有网友问到哪里找图片,就把之前整理的资料分享一下。
身份证测试数据
测试数据的时候,可以使用 idcard_generator 生成测试身份证图片。
身份证上传页面背景图
macOS 上安装 PHP 扩展 imagick
小红书真实风格的美女制造机视频版的也来了……(附AI视频生成方法及实测效果)
第一步,生成图片
使用 《小红书真实风格的美女制造机来了,我来找找 AI 的漏洞》这篇文章里介绍的 Flux Lora 模型「 Flux_小红书真实风格丨日常照片丨极致逼真」。
在网站生图或下载模型部署后,自己输入场景和人物特征,生成图片导出备用。
第二步,生成视频
打开海螺 AI,然后点击“创作视频”,再点击图片按钮上传图片,不需要输入任何 prompt,最后点击“生成”就可以了。
Ubuntu 22.04 安装 DokuWiki (Nginx 版)
DokuWiki 是一个简单易用、用途多样并且不依赖数据库的开源维基软件。它因简洁易读的语法受到用户的喜爱。而容易维护、备份方便和易于整合则使它成为管理员的最爱。
我的环境:
- ubuntu 22.04
- nginx 1.18
- php8.1
- mysql8
安装步骤
- 在 DokuWiki 官网下载页 下载最新稳定版本;
- 解压到
/var/www/dokuwiki
,作为项目根目录; - 将根目录下的
data
和conf
设置为可写; - 配置 nginx,新增配置文件
/etc/nginx/sites-enabled/dokuwiki
:
使用 grep 命令快速找出 nginx 配置冲突的域名所在配置文件
修改 Nginx 配置时,报错:
$ nginx -t
nginx: [warn] conflicting server name "crowall.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
出现 Nginx 报错 "conflicting server name" 通常意味着在 Nginx 配置中有两个或更多的 server 块使用了相同的 server_name 指令。
我的服务器是 ubuntu 22.04,安装默认的 nginx 1.18.0,所有的 server 都在 /etc/nginx/sites-enabled 目录下。
所以问题就变成了:找出 /etc/nginx/sites-enabled 目录里所有配置了这个域名的文件。
如果只有两三个 server 配置文件,一个个看也没问题,不过我的 server 比较多,所以就需要使用 grep 命令。
grep -r "crowall.com" /etc/nginx/sites-enabled/
-r
表示如果下面有子目录也会扫描。
执行完就可以看到冲突的两个配置文件了,非常方便。
tinyPod —— 把你的 Apple Watch 变成迷你手机
国外有一家公司近期推出了一款 Apple Watch 的外设 tinyPod,看起来是一个 Apple Watch 的壳子,不过里面还是有个蛮有意思的设计——一个跟 iPod 一样的转盘。
看一下官网的演示视频,看起来确实不错。
从视频演示来看,还是蛮顺滑的。tinyPod 官网上解释了转盘的工作原理,大意是内部采用机械方式,把转盘直接连接到 Apple Watch 的表冠上。