騰訊云服務(wù)器優(yōu)化
起因
大概就是在幾個(gè)月之前本人租了一臺服務(wù)器用來(lái)搭建自己的博客(原來(lái)的博客是在阿里云香港服務(wù)器上面,在十一期間被和諧了),于是租用了1核1G內存的云服務(wù)器(三年800多元),可是在使用的過(guò)程中發(fā)現cpu和內存占用有點(diǎn)異常,查了下發(fā)現以下問(wèn)題:
- 服務(wù)器上面跑著(zhù)幾個(gè)監控軟件(并沒(méi)有什么),占了好多CPU.
- 服務(wù)器沒(méi)有swap分區,1G雖然夠用,但是優(yōu)點(diǎn)不爽
- 內存的緩存部分占得比例比較大
- 磁盤(pán)變大了好多,但是本人安裝的幾個(gè)軟件都不會(huì )占這么多磁盤(pán)
所以,就有了如下操作:
刪除騰訊云的監控軟件
執行下面命令:
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分區
查看自己內存使用狀況,并沒(méi)有swap分區,雖然暫時(shí)內存是夠用的,但是對于這種有強迫癥的人來(lái)講是受不了的.
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
- 為自己的服務(wù)器創(chuàng )建快照,不管怎么說(shuō),在進(jìn)行危險操作之前進(jìn)行備份是一個(gè)比較好的習慣,可以省去好多麻煩.
- 執行下面命令創(chuàng )建分區:
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
- 修改啟動(dòng)配置,修改文件
vi /etc/default/grub
,增加下面內容:
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
- 更新啟動(dòng)
grub
:
update-grub && update-grub
- 最后一部重啟服務(wù)器就好了
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
參考文檔: 騰訊云服務(wù)器添加SWAP分區
多余系統日志和buffer內存清理
定時(shí)清理
我整理了下面的腳本,加到定時(shí)任務(wù)里面即可
sync # 強制將緩存寫(xiě)到磁盤(pán)
apt clean # 清理安裝軟件殘留,騰訊云貌似會(huì )定時(shí)update
echo 3 > /proc/sys/vm/drop_caches # 釋放內存
echo "" > /var/log/btmp # 和郵件相關(guān)的日志,我服務(wù)器上面基本用不到,但是居然達到了好幾百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-* # 清理日志
定時(shí)任務(wù)如下,我寫(xiě)了30分鐘,時(shí)間有點(diǎn)短,正常自己可以設置到3-6小時(shí)左右.
*/30 * * * * bash /usr/local/zeek/clean.sh
journalctl
日志 清理
執行下面命令查看日志大小,如果太小了就不用清理了,我執行的時(shí)候比較大.
journalctl --disk-usage
修改 /etc/systemd/journald.conf
,主要下面兩個(gè)配置
SystemMaxUse=16M
ForwardToSyslog=no
然后重啟 journald
服務(wù):
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
的內存,限制成了這么一點(diǎn)點(diǎn),也不知道夠不夠用,從現象來(lái)看沒(méi)什么毛病.
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.pzrlhr.cn \
--lute_http=http://127.0.0.1:8249
ok,這樣子服務(wù)器就可以搞很多其他事情了。目前我的服務(wù)器上面跑了:個(gè)人博客、gitea私服、jsnkins服務(wù),以及各個(gè)服務(wù)使用到的mysql和redis服務(wù)。

0 評論