cgroup限制程序記憶體大小
宣告:
本部落格歡迎轉發,但請保留原作者資訊!
內容系本人學習、研究和總結,如有雷同,實屬榮幸!
以限制mongodb的記憶體大小為例。
Cgroup限制方法:
mkdir /cgroup/memory/test/ echo 50M > /cgroup/memory/test/memory.limit_in_bytes echo 50M > /cgroup/memory/test/memory.memsw.limit_in_bytes cgexec -g memory:test mongod -port 27017 --bind_ip 127.0.0.1 --dbpath /var/lib/mongo
通過cgroup限制後,當記憶體達到限額,程序會被kill。
[[email protected] mongo]# cgexec -g memory:test mongod -port 27017 --bind_ip 127.0.0.1 --dbpath /var/lib/mongo 2014-07-18T23:20:53.228+0800 [initandlisten] MongoDB starting : pid=2529 port=27017 dbpath=/var/lib/mongo 64-bit host=centos 2014-07-18T23:20:53.228+0800 [initandlisten] db version v2.6.3 2014-07-18T23:20:53.228+0800 [initandlisten] git version: 255f67a66f9603c59380b2a389e386910bbb52cb 2014-07-18T23:20:53.228+0800 [initandlisten] build info: Linux build12.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49 2014-07-18T23:20:53.228+0800 [initandlisten] allocator: tcmalloc 2014-07-18T23:20:53.228+0800 [initandlisten] options: { net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongo" } } 2014-07-18T23:20:53.304+0800 [initandlisten] journal dir=/var/lib/mongo/journal 2014-07-18T23:20:53.304+0800 [initandlisten] recover : no journal files present, no recovery needed 2014-07-18T23:20:53.374+0800 [initandlisten] waiting for connections on port 27017 2014-07-18T23:20:57.838+0800 [initandlisten] connection accepted from 127.0.0.1:36712 #1 (1 connection now open) 2014-07-18T23:21:15.077+0800 [initandlisten] connection accepted from 127.0.0.1:36713 #2 (2 connections now open) 2014-07-18T23:21:52.342+0800 [conn2] getmore test.my_collection cursorid:34538199491 ntoreturn:0 keyUpdates:0 numYields:39 locks(micros) r:121572 nreturned:95052 reslen:4194299 202ms 2014-07-18T23:21:53.376+0800 [clientcursormon] mem (MB) res:136 virt:12809 2014-07-18T23:21:53.376+0800 [clientcursormon] mapped (incl journal view):12508 2014-07-18T23:21:53.376+0800 [clientcursormon] connections:2 2014-07-18T23:21:56.790+0800 [conn2] getmore test.my_collection cursorid:34538199491 ntoreturn:0 keyUpdates:0 numYields:88 locks(micros) r:142113 nreturned:95595 reslen:4194301 244ms Killed
資料查詢指令碼:
[[email protected] data]# cat mongotestList.py
import pymongo
import time
client = pymongo.MongoClient("localhost", 27017)
db = client.test
print db.name
print db.my_collection
for item in db.my_collection.find():
print item
資料插入指令碼:
[[email protected] data]# cat mongotest2.py import pymongo import time client = pymongo.MongoClient("localhost", 27017) db = client.test print db.name print db.my_collection while True: db.my_collection.save({time.ctime(): time.time()})
相關推薦
cgroup限制程序記憶體大小
宣告: 本部落格歡迎轉發,但請保留原作者資訊! 內容系本人學習、研究和總結,如有雷同,實屬榮幸! 以限制mongodb的記憶體大小為例。 Cgroup限制方法: mkdir /cgroup/memory/test/ echo 50M > /cgrou
CGroup 限制CPU/記憶體等資源的使用
CGroup 介紹 CGroup 是 Control Groups 的縮寫,是 Linux 核心提供的一種可以限制、記錄、隔離程序組 (process groups) 所使用的物力資源 (如 cpu memory i/o 等等) 的機制。2007 年進入 Linux
使用cgroup限制某個程序對內存的使用
cgroup的使用線上的mongodb是復制集模式的。為了便於監控mongodb的慢查詢等狀態,在3臺機器上都部署了packetbeat,通過抓取27017端口的流量發送到ES集群。但是第二天發現zabbix告警,顯示某一臺機器A(從節點)上的mongod進程宕了。日誌顯示是OOM導致的。再一想到,我們每天的
[從0到1搭嵌入式工程]計算程序佔用的記憶體大小
指令碼內容: # cat get_process_mem.sh pid=$(ps|grep myprocess|grep -v grep|awk '{print $1}') cat /proc/$pid/status|grep VmRSS|awk
讓Redis突破記憶體大小的限制
Redis雖然可以實現持久化儲存,也是基於資料記憶體模型的基礎之上,單機記憶體大小限制著Redis儲存的資料量,有沒有一種替代方案呢?本文介紹一款筆者使用的採用New BSD License 許可協議的軟體——SSDB。 官網地址:http://ssdb.io/zh_cn
【筆記】ios 記憶體大小的限制 (因佔用記憶體太大而crash)
因ios對每個程式都有最大的記憶體分配限制,如果超過了這個閾值,會被系統強制關閉,造成crash,通常出現在bugly上的錯誤碼是 SEGV_ACCERR。在除錯的時候,會顯示類似這樣的資訊 EXC_RESOURCE RESOURCE_TYPE_MEMORY (lim
如何有效調整HiveServer2程序的JVM堆記憶體大小?
我的執行環境:JDK1.8, HIVE1.2 ,HADOOP2.7 HiveServer2在以下簡稱HS2 [[email protected]_hdp_01 bin]$ pwd ${HIVE_HOME}/bin [[email protec
Window7 32位系統破解電腦使用記憶體大小的限制
Window7 32位系統只能使用3G多一點記憶體,然而自己的記憶體比較大,實在是一種浪費; 於是就網上找了一種方法,可以使用我的16G的記憶體,破解記憶體的限制;這樣就可以像64位系統一樣使用記憶體
linux 下應用程式設計程序記憶體資源的限制
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/resource.h> #include <errno.h> #include &l
使用cgroup限制記憶體使用
調研目標: 1、檢查memory cgroup管理的程序都設定為不可oom kill時,當出現oom,是否會造成程序或程序組阻塞。 2、若出現阻塞,是否可自恢復。 一、準備過程 0、執行lssubsys --all,檢查是否安裝了cgroup的元件;沒有安裝則 apt-
c#如何限制程式記憶體使用的大小
c#雖然內建垃圾回收機制,但是並不能解決程式佔用記憶體龐大的問題,如果我們仔細觀察工作管理員,我們會發現一個程式如果最小化的時候,它所佔用的會驟然減小,這時作業系統會把程式用不到的記憶體暫時放到虛擬記憶體中,當我們再把
Java記憶體大小限制
我們在執行Java程式時,特別是跑app server時,經常需要調大JVM的heap大小。通過-Xms256m -Xmx256m的引數形式區設定heap的大小,還有-XX:PermSize=256m -XX:MaxPermSize=256m的引數形式設定perm space
棧(stack)上申請記憶體大小限制問題
#include <iostream> using namespace std; long int count = 0; void stack() { char msg[1024]; //加上static可以測試靜態儲存區的記憶體 cout<
Cgroup限制CPU、IO、記憶體以及linux系統中的排程策略
一、CPU 1、0核利用 思路: 0核是必須要保護的,否則各種系統命令、喂狗都可能出問題; &
js上傳文件(圖片)限制格式及大小為3M
max element 不能 jpg script 圖片大小 -s 打開 -1 本文保存為.html文件用瀏覽器打開即可測試功能 <form id="form1" name="form1" method="post" action="" enctype="m
利用cgroup限制instance磁盤io資源使用
loaded load 安裝 product 開啟 .com read net nag 1、安裝libcgroup軟件包;[root@pre-pool1-r6-06-08-18-01 ~]# yum install libcgroup Loaded plugins: pro
c語言獲得動態分配記憶體後的陣列記憶體大小
c語言獲得動態分配記憶體後的陣列記憶體大小 用一個函式 :_msize(); ★注意:該函式為Windows獨有★ int* s = (int*)malloc(sizeof(int)); int i; for(i
shell指令碼限制日誌檔案大小和行數
背景: 專案server在後端持續執行,日誌檔案不斷變大,需及時進行清空。 解決方案:編輯sh指令碼,指定時間間隔輪詢;將超出限制的日誌檔案,先備份,再清空原日誌檔案內容。 清空日誌檔案內容的方法有: 1
Java中一維陣列和二維陣列儲存佔用記憶體大小問題
問題:在java中,一維陣列和二維陣列在資料量一樣的情況下,開闢的記憶體大小是怎樣的? 一、嘗試階段: 1、程式碼一: public class OneArrayMemory{ public static void main(String[] args){ int num1 = 1
Linux下檢視檔案和資料夾佔用記憶體大小、刪除日誌 命令
轉:https://www.cnblogs.com/lixuwu/p/5944062.html 閱讀目錄 1 Linux下檢視檔案和資料夾大小 2 刪除系統日誌等 3 實踐 場景:在sts中執行自動部署時候maven提示No space left on d