分类 Linux 下的文章
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 过高,通常意味着系统正在进行大量的换页操作,可能是因为物理内存不足。
使用 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
表示如果下面有子目录也会扫描。
执行完就可以看到冲突的两个配置文件了,非常方便。
将本地的 HTTP Proxy 共享给阿里云服务器
国内的服务器有个蛋疼的问题:下载一些国外的依赖时非常慢甚至被墙。
比如 github 上的那些开源软件,下载速度只有十几K,甚至下不了。
再比如 packgist 至今都是被墙的,只能使用国内的镜像。
以前尝试过给服务器装个 v2ray 走代理,结果被云厂商扫描出来了,还给警告了一下。
怕被停服,不敢装了。
其实有个好办法就是使用 ssh -R
命令,将本地的代理端口共享给服务器,让服务器走你本地的代理去访问国外网站。
使用 ssh 连接服务器的时候,使用以下命令:
ssh -R 本地端口:本地主机:远程端口 用户名@远程主机
安装网站 HTTPS 证书,推荐使用 Certbot
之前一直使用 acme.sh 手动搞,非常麻烦,而且现在又被墙了,更加麻烦。
使用 Certbot,分分钟搞定,并且后续也不需要任何操作,全部自动化了,省心省力。
我服务器使用的是 Ubuntu + Nginx,在 Certbot 官网上选择一下,就可以看到专用的教程了:
根据教程,执行以下步骤:
Certbot 官网: https://certbot.eff.org/
Ubuntu 22.04 用 snap 安装 gitea,并配置 nginx 反向代理
今天给新开的阿里云主机(系统是 Ubuntu 22.04)安装一个私有的 git 仓库,选用 Gitea。
结果发现 apt 下没有这个软件包。想起来 ubuntu 开始用 snap 了,于是用 snap 试试。
root@ubuntu:~# snap install gitea
gitea v1.21.2 from Gitea installed
果然好使。
检查了一下,发现已经跑起来了。
ps aux | grep gitea
root 231929 1.4 9.8 1916768 171100 ? Ssl 12:45 0:03 /snap/gitea/6697/gitea web
Ubuntu 18.04 安装 MySQL 5.7
Linux/Ubuntu 格式化&挂载磁盘
查看磁盘现状(parted 命令):
ls /dev/sd*
sudo parted -l | grep Disk | grep sd
sudo parted -l | grep Disk | grep sd |wc -l
sudo parted -l
Linux 问题 su: 无法设置用户ID: 资源暂时不可用
问题
执行命令报如下错误:
$ sudo su - dw
su: 无法设置用户ID: 资源暂时不可用
解决办法
- 打开
/etc/security/limits.d/90-nproc.conf
文件; - 将 * soft nproc 1024 改为 10240,保存。