1. 程式人生 > >乾貨 | 系統潤滑,定時清理記憶體瞭解一下

乾貨 | 系統潤滑,定時清理記憶體瞭解一下

點選上方“中興開發者社群”,關注我們

每天讀一篇一線開發者原創好文

640?wx_fmt=png

前言

  • 記憶體總是不夠用?

  • 快取總是被佔用?

  • 無法實時釋放快取?

這都不是事,看完本文讓你的linux伺服器時刻保持強勁動力!!!

首先需要了解兩個東西“定時任務”與“記憶體釋放”

定時任務

命令:crontab

命令相關引數:

  • -e (修改使用者定時任務)

  • -l (列出使用者的定時任務)

  • -r (刪除使用者定時任務)

  • -i (刪除定時任務前通知使用者)

定時任務設定引數

基本格式 :

640?wx_fmt=png

示例1

640?wx_fmt=png

示例2

640?wx_fmt=png

記憶體釋放

命令:

用於linux系統 (RedHat CentOS CGSL ubuntu)

640?wx_fmt=png

  • sync 做同步,將所有未寫的系統緩衝區寫到磁碟中,以確保檔案系統的完整性,否則在釋放快取的過程中,可能會丟失未儲存的檔案

  • 1 釋放頁快取

  • 2 釋放dentries和inodes

  • 3 釋放所有快取

實際操作

步驟:

  1. 編寫記憶體釋放的指令碼

root使用者下編寫指令碼

640?wx_fmt=png

2.設定crontab

root使用者下執行crontab -e命令

640?wx_fmt=png

檢視設定情況

  1. [[email protected] home]# crontab -l

  2. */1 * * * * /home/clean_mem.sh

  3. [[email protected] home]#

需要注意的是我們通過root使用者執行的crontab命令,則該定時任務的規則僅適用於root使用者,所以指令碼的屬組為root使用者

3.檢視定時任務的執行情況

定時任務的執行日誌記錄在/var/log/cron中

  1. [root@ems001 home]# cd /var/log/

  2. [root@ems001 log]# tail -f cron

  3. Jul2410:37:01 ems001 CROND[19842]:(root) CMD (/home/clean_mem.sh)

  4. Jul2410:38:02 ems001 CROND[19850]:(root) CMD (/home/clean_mem.sh)

  5. Jul2410:39:01 ems001 CROND[19854]:(root) CMD (/home/clean_mem.sh)

  6. Jul2410:40:01 ems001 CROND[19862]:(root) CMD (/home/clean_mem.sh)

檢視記憶體釋放情況

  1. [

    root@ems001 home]# free

  2.         total       used       free     shared    buffers     cached

  3. Mem:245549005807180187477201623212761827572

  4. -/+ buffers/cache:397833220576568

  5. Swap:18874364018874364

  6. [root@ems001 home]# free

  7.         total       used       free     shared    buffers     cached

  8. Mem:24554900498033219574568162321300999016

  9. -/+ buffers/cache:398001620574884

  10. Swap:18874364018874364

兩次對比可以看出釋放了1G的記憶體

這樣一個自動清理記憶體的設定就完成了

4.刪除定時任務

640?wx_fmt=png

結語

  • 通過定時任務來執行指令碼的方法其實還有很多,比如直接使用crond服務,或者使用 at time

    如crond服務,如果用的任務不是以hourly monthly weekly方式執行的,則可以直接在/etc/cron.d目錄中建立一個定時任務格式的指令碼

  • 另外需要注意的很多人會存在疑惑的,使用 crontab -e 與 直接編輯 /etc/crontab有什麼區別

    做系統級配置我們會直接配置 /etc/crontab,使用者級的則用 crontab -e,一般還是建議大家使用 crontab -e ,這樣系統也會幫著檢查我們配置的指令碼語法。

關於定時清理記憶體的方法,並不是所有伺服器都適用,對於某些需要持續申請記憶體的服務來說,不斷釋放記憶體可能會造成處理速度降低,所以使用時還需要考慮自身服務特性來進行設定

640?wx_fmt=png

相關推薦

C#定時清理記憶體net網頁端可以嘗試使用

-- in class definition ——在類定義中 [DllImport("KERNEL32.DLL", EntryPoint = "SetProcessWorkingSetSize", SetLastError = true, CallingConvention = CallingConven

通過批處理文件使用7zip執行備份將1日和15日的備份再另外備份定時清理過期備份

命令行備份 命令行清理 Batch File 批處理文件 批處理備份 7z.exe是個好東東,N多年前,當時試用了各種命令行壓縮軟件,效果都不怎麽樣,那時7zip出來不久,發現它也有命令行模式,然後試用一下,發現可用性很好,壓縮率、效率也很不錯。當時試用過winrar和rar,效果都不太好

3:檢視系統版本號及清理記憶體

1、清理前檢視記憶體的使用情況 #free -m 2、檢視記憶體大小 #cat /proc/meminfo | grep MemTotal 3、清理記憶體 echo 1 > /proc/sys/vm/drop_caches

用Unity做遊戲你需要深入瞭解一下IL2CPP

這次我們翻譯了一篇Unity官方部落格上的文章,原文題目為AN INTRODUCTION TO IL2CPP INTERNALS ,作者是從事Unity軟體開發的Joshua Peterson。文章的看點在於,它是以IL2CPP內部開發人員的角度來講述的,所以對於開發者來說非常有參考價值。 如果

騷年Koa和Webpack瞭解一下

前言 日常開發中,我們用的都是使用Webpack這類構建工具進行模組化開發。 或者使用基於create-react-app和vue-cli等腳手架進行開發。 如果這個時候我們需要Node作為後端,React或者Vue作為前端,Webpack作為構建工具,那豈不是我

這想要熬夜不傷身Goodhealth牡蠣精瞭解一下

雖然小編很不想承認,但髮際線和髮量騙不了人:身為第一批90後的小編,已經開始禿頭啦!沒完沒了的加班和應酬,掏空了小編。不過幸好朋友推薦了好健康Goodhealth牡蠣精,將小編從熬夜的苦海之中解救了出來,保持精力滿滿! 好健康Goodhealth被稱為“紐西蘭國

Python很難?不存在的極速入門瞭解一下

Python現在作為火熱的程式語言,另許多朋友對它趨之若鶩,但如何快速入門Python,相信很多朋友還是很迷茫的,對於初學者來說猶勝之,害怕自己學不會,不會用,那麼 這篇文章主要就是家如何快速入門python,一個簡短而全面的入門教程帶你走入Python的大門

游泳健身瞭解一下object-c也瞭解一下

       本文談不上技術文章,只是前幾天看了object-c語法,其實oc語法此前看過一次,不過紙上得來終覺淺,看過後沒怎麼實踐,後來也就忘得差不多了。這次又看了一下,然後隨便寫幾句吧。如果單純有java基礎,看oc會覺得有好多彎要轉。如果有c/c++基礎,看oc會稍微好

除了FastJson你也應該瞭解一下Jackson(一)

在上月末的時候收到一條關於fastjson安全漏洞的訊息,突然想到先前好像已經有好多次這樣的事件了(在fastjson上面)。關於安全方面,雖然中槍的機率微小,但是在這個資訊越來越複雜的時代,安全性也變得越來越重要,就像DevSecOps的誕生,在軟體交付的整個價值流中我們也需要注重安全這方面。當然我們現在不

除了FastJson你也應該瞭解一下Jackson(二)

## 概覽 上一篇文章介紹了Jackson中的對映器ObjectMapper,以及如何使用它來實現Json與Java物件之間的序列化和反序列化,最後介紹了Jackson中一些序列化/反序列化的高階特性。而本文將會介紹Jackson中的一些常用的(序列化/反序列化)註解,並且通過示例來演示如何使用這些註解,從

分散式一致性演算法你確定不瞭解一下

  集中式與分散式 集中式 分散式 分散式事務 一致性協議 2PC:Two-Phase Commit二階段提交協議 3PC:Three-phase Commit 三階段提交協議 Paxos演算法 RAFT演算法 總結   集中式與分散式 集中式 就是將所有的業務都部署在

增加定時檢測linux佔用記憶體及時清理功能

最近伺服器老是執行緩慢,使用者請求沒有反應,甚是煩惱,下面提供一下解決方案: free -m 檢視,發現記憶體跑滿了。 再 top,然後按下shift+m,也就是按記憶體佔用百分比排序,發現排在第一的程序,才佔用7.9%。 但是總記憶體大小8G,竟然有5G都被使用了, 那是

(轉)增加定時檢測linux占用內存及時清理功能

idle 內存 檢測內存 一定的 top 服務 清理內存 mon attribute 增加定時檢測linux占用內存,及時清理功能 原文:http://www.voidcn.com/article/p-wnmannom-boa.html free -m 查看,發現內存跑滿了

學習分散式系統這些術語你瞭解嗎?

對於剛進入區塊鏈行業的小白同學來說,一切都顯得比較陌生,很多概念性質的東西理解起來也比較吃力,本文和大家分享的是區塊鏈分散式系統中常見的一些專業分類,一起來看看吧,希望對大家有所幫助。 1. Failure models 失效模型 機器故障:當機器(節點)出現故障時,共識協議就用於解決機器

kickstart自動安裝指令碼;系統延時定時任務的atcrobtab檔案方式設定定時任務;

kickstart自動安裝指令碼 前提條件:掛載好yum,開啟httpd服務,配置dhcp服務 yum install -y system-config-kickstart system-config-kickstart 點Add 點 Add Netwo

想要真正瞭解WMS(倉庫管理系統首先要知道這些

WMS是Warehouse Management System的縮寫,翻譯即倉庫管理系統。通過WMS系統可以將入庫、出庫、調撥、盤點、批次管理、庫存預警等倉庫內的作業流程進行全方位的管理。應用WMS系統進行倉庫管理可以有效控制庫內的作業流程,對成本進行全面的掌控。同時WMS系統還可以同企業的其他管理

kafka 系統日誌定時清理

每天定時清理kafka叢集server端3天前的系統日誌 寫清理指令碼,: 在/data1/kafka/kafka 目錄下新建檔案 auto-delete-kafka-3days-ago-log.sh 內容如下: #!/bin/sh find /data1/kafka/kafka/

iOS開發之MAC的記憶體清理Xcode清理

此文章僅適用於適用於使用Xcode的開發者。 長期不清理Xcode中的一些檔案你會發現自己的mac硬碟越來越小,而且是這個其他佔了絕大部分的硬碟,在網上搜索了很多辦法都沒找到如何清理這些其他 後來來來回回在資料夾中找發現~/Library/Developer/Xcode這個Xcode資料夾大的驚

(一)solr 7.31版本window系統全程安裝搭建涵蓋專案用到的大部分配置常用查詢solr多條件查詢、排序配置資料庫定時同步全量與增量更新使用solrJ在java程式進行增刪改查

前言:由於專案最近在做淘寶客商品資訊查詢這一塊,做搜尋引擎,離不開全文搜尋伺服器,我這裡選擇了solr。solr的好處可以自行百科,這裡主要是講解技術。這篇文章主要講解window的安裝和使用。若大家感興趣或者專案用到,希望你能跟著我的步驟進行下去,如果遇到問題,可以後續看下我在最底下的問題