發現網址登陸不上,接口調用失敗,超時
再登陸MySQL,發現也登不上
只能登陸阿里雲了,結果發現磁盤滿了,當時我就驚奇了,什麼都沒裝怎麼會滿磁盤。。。html
輸入如下指令查看當前磁盤容量node
df -h
複製代碼
這個時候得查看大容量文件夾,定位是什麼出了問題git
輸入如下指令github
du -h --max-depth=1
複製代碼
因此,爲何root文件夾會這麼大明明就沒有東西里面? bash
多是隱藏文件夾吧,進入root文件夾,繼續輸入指令查看服務器
這麼多配置文件夾。。。運維
原來是PM2的問題,那PM2爲何會佔用這麼大的容量!!!post
接着上谷歌搜了一下,多是日誌文件佔用的磁盤容量,那我就嘗試清除日誌文件,看可否解決問題ui
經過指令關閉PM2,個人node進程id是0阿里雲
pm2 stop 0
複製代碼
若是PM2內有多個進程,則須要輸入如下指令關閉全部的進程
pm2 stop all
複製代碼
pm2 flush
複製代碼
3. 接着再查看容量服務器的容量
能夠看到,一會兒少了35個G,果真就是pm2日誌的問題
此次問題是解決了,可是總不能每週或者每個月檢查一第二天志,看看是否是過大了再手動刪除。。。
果斷在谷歌搜了一下PM2 日誌相關的內容,果真搜到了日誌管理用的插件pm2-logrotate
輸入指令
pm2 install pm2-logrotate
複製代碼
等待安裝完成
配置項 | 簡介 |
---|---|
Compress | 是否經過gzip壓縮日誌 |
max_size | 單個日誌文件的大小,好比上圖中設置爲1K(這個其實過小了,實際文件大小並不會嚴格分爲1K) |
retain | 保留的日誌文件個數,好比設置爲10,那麼在日誌文件達到10個後會將最先的日誌文件刪除掉 |
dateFormat | 日誌文件名中的日期格式,默認是YYYY-MM-DD_HH-mm-ss,注意是設置的日誌名+這個格式,如設置的日誌名爲abc.log,那就會生成abc_YYYY-MM-DD_HH-mm-ss.log名字的日誌文件 |
rotateModule | 把pm2自己的日誌也進行分割 |
workerInterval | 設置啓動幾個工做進程監控日誌尺寸,最小爲1 |
rotateInterval | 設置強制分割,默認值是0 0 * * *,意思是天天晚上0點分割,這個足夠了我的以爲 |
這裏咱們設置,當日志文件數量超過50個時候,就自動刪除舊文件
pm2 set pm2-logrotate:retain 50
複製代碼
設置完成後的樣子,咱們看到retain由默認的30改爲了50
固然,若是想後面直接看配置,也能夠經過指令pm2 conf pm2-logrotate
來查看詳細的配置。
pm2 startup
,這個命令會在系統 /etc/systemd/system/ 路徑下生成一個 pm2-root.service 文件用來開機啓動 pm2 服務。
pm2 save
, 保存當前 pm2 運行的各個應用保存到 /root/.pm2/dump.pm2 下,開機重啓時讀取該文件中的內容啓動相關應用。
後來想了下,多是用的node中定時器的包node-schedule
,主要此次沒看PM2的log日誌內容,就把文件給刪除了,也不沒能定位究竟是不是這個緣由,等過一個月再確認一下
使用這個包的話,能夠看個人這篇文章 從零開始在NodeJs中使用node-schedule增長定時任務