服务器常见问题
概述
本文总结了在服务器使用上常见的问题。
MySQL 占用内存过高
参见 https://stackoverflow.com/questions/10676753/reducing-memory-consumption-of-mysql-on-ubuntuaws-micro-instance。
具体做法
1 | |
可以 cut off 近 20% 的内存占用,我的服务器一共约 900MB 的内存,也就是释放了约 200MB 的空间出来。
之所以发现这个问题,是因为 2025-01-01 早上起来发现服务器登录不上去,当天凌晨的 CPU 占用率 100%。用 top 命令发现内存只剩下 5% 左右,很容易溢出。
还有一个方案是
1 | |
然而 query_cache_size 和 query_cache_limit 已经 deprecated,而且 key_buffer 要替换为 key_buffer_size,我看了看,效果不是很明显。
停止再启动服务器后,连接不上了
这里之所以采用停止再启动的说法,是因为重启不会改变机器的 IP,而停止后会的。所以说,要么申请一个弹性 IP,就始终是你了。要么就每次停止再启动后,手动修改 DNS 解析。还是前者方便一些吧。
注意,停止再启动后,服务器的 IP 会变,所以可能引发的现象是:原来的域名提示连接超时;通过 XSHELL 等第三方 ssh 连接不上服务器,Connection Failed...。本质就是服务器的 IP 变了。
新建用户
用 Github 白嫖的 DigitalOcean 服务器默认是 root 用户,太可怕了。因此新建一个用户,并进行 ssh 的配置。且看:
1 | |
这样的话,每次使用 sudo 还需要输入密码,不好,因为已经可以通过 ssh 登录了(见下),所以不想输入密码。
使用 sudo visudo 修改 visudo,其实用 vim 修改 /etc/visudo 也可以。在文件的 最后一行 添加 xialing ALL=(ALL) NOPASSWD: ALL。
通过 ssh 登录,使用 XShell 工具选项卡的密钥对生成工具,把公钥复制到 ~ 下的 .ssh 下的 authorized_keys 文件中,如果没有的话,新建这个文件夹。
完毕。
