腾讯云服务器优化

本贴最后更新于 1530 天前,其中的信息可能已经事过境迁

起因

大概就是在几个月之前本人租了一台服务器用来搭建自己的博客(原来的博客是在阿里云香港服务器上面,在十一期间被和谐了),于是租用了 1 核 1G 内存的云服务器(三年 800 多元),可是在使用的过程中发现 cpu 和内存占用有点异常,查了下发现以下问题:

  • 服务器上面跑着几个监控软件(并没有什么),占了好多 CPU.
  • 服务器没有 swap 分区,1G 虽然够用,但是优点不爽
  • 内存的缓存部分占得比例比较大
  • 磁盘变大了好多,但是本人安装的几个软件都不会占这么多磁盘

所以,就有了如下操作:

删除腾讯云的监控软件

执行下面命令:

bash /usr/local/qcloud/stargate/admin/uninstall.sh bash /usr/local/qcloud/YunJing/uninst.sh bash /usr/local/qcloud/monitor/barad/admin/uninstall.sh

增加 swap 分区

查看自己内存使用状况,并没有 swap 分区,虽然暂时内存是够用的,但是对于这种有强迫症的人来讲是受不了的.

root@VM-0-17-debian:~# free -h total used free shared buff/cache available Mem: 868M 394M 253M 6.0M 220M 342M Swap: 0 0 0
  • 为自己的服务器创建快照,不管怎么说,在进行危险操作之前进行备份是一个比较好的习惯,可以省去好多麻烦.
  • 执行下面命令创建分区:
dd if=/dev/zero of=/mnt/swap2g bs=1M count=2048 mkswap /mnt/swap2g swapon /mnt/swap2g
  • 修改 /etc/fstab 文件,增加下面数据
/mnt/swap2g swap swap defaults 0 0

增加完了之后如下所示:

root@VM-0-17-debian:~# cat /etc/fstab /dev/vda1 / ext3 noatime,acl,user_xattr 1 1 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 /mnt/swap2g swap swap defaults 0 0
  • 修改启动配置,修改文件 vi /etc/default/grub,增加下面内容:
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
  • 更新启动 grub:
update-grub && update-grub
  • 最后一部重启服务器就好了
root@VM-0-17-debian:~# free -h total used free shared buff/cache available Mem: 868M 398M 334M 6.0M 135M 338M Swap: 2.0G 96M 1.9G

参考文档: 腾讯云服务器添加 SWAP 分区

多余系统日志和 buffer 内存清理

定时清理

我整理了下面的脚本,加到定时任务里面即可

sync # 强制将缓存写到磁盘 apt clean # 清理安装软件残留,腾讯云貌似会定时update echo 3 > /proc/sys/vm/drop_caches # 释放内存 echo "" > /var/log/btmp # 和邮件相关的日志,我服务器上面基本用不到,但是居然达到了好几百M大小 cd /var/log/nginx && rm -rf *.gz && rm -rf *.1 # 清理日志 cd /var/log/ && rm -rf *.gz && rm -rf *.1 # 清理日志 cd /var/log && rm -rf auth.log-* # 清理日志

定时任务如下,我写了 30 分钟,时间有点短,正常自己可以设置到 3-6 小时左右.

*/30 * * * * bash /usr/local/zeek/clean.sh

journalctl 日志 清理

执行下面命令查看日志大小,如果太小了就不用清理了,我执行的时候比较大.

journalctl --disk-usage

修改 /etc/systemd/journald.conf,主要下面两个配置

SystemMaxUse=16M ForwardToSyslog=no

然后重启 journald 服务:

systemctl restart systemd-journald.service

再次查看日志大小,我这边只剩余 18M 大小了.

root@VM-0-17-debian:/var/log# journalctl --disk-usage Archived and active journals take up 18.0M in the file system.

docker 限制内存

限制 lute-http 的内存,限制成了这么一点点,也不知道够不够用,从现象来看没什么毛病.

docker run --detach --rm --network=host -m 80M b3log/lute-http

限制 solo 博客的内存,300M 应该够了吧,

docker run --detach --name solo --network=host -m 300M \ --env RUNTIME_DB="MYSQL" \ --env JDBC_USERNAME="root" \ --env JDBC_PASSWORD="123456" \ --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC" \ --volume /dockerData/solo/skins/:/opt/solo/skins/ \ b3log/solo --listen_port=8080 --server_scheme=https --server_host=www.zeekling.cn \ --lute_http=http://127.0.0.1:8249

ok,这样子服务器就可以搞很多其他事情了。目前我的服务器上面跑了:个人博客gitea 私服jsnkins 服务,以及各个服务使用到的 mysql 和 redis 服务。

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    950 引用 • 943 回帖 • 1 关注
  • 原创
    11 引用 • 44 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖 • 1 关注
1 操作
zeekling 在 2021-01-03 21:42:05 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...