我有一个mongod服务器运行。 每天,我正在执行mongodump以便进行备份。 问题在于,mongodump会占用大量的资源,并且会减慢服务器的运行速度(顺便说一下,还有其他一些繁重的任务)。
我的目标是以某种方式限制在shell脚本中调用的mongodump。
谢谢。
我想利用PCA9685芯片驱动beaglebone黑色的舵机,我看到有一个linux驱动程序,但是如何在C / C ++中使用。 任何例子?
可以在BASH环境中创build和操作一个对象列表
是否可以使用`as`来组装和运行原始cpu指令?
sed help:匹配和replace文字“ n”(不是换行符)
LEAdvertisingManager1从DBus.ObjectManager.GetManagedobjects中丢失
gdb问题设置硬件观察点/如何设置软件观察点
服务器devise模式/最佳实践的最佳来源是什么?
你应该使用cgroups。 挂载点和细节在发行版和内核上是不同的。 即Debian 7.0与股票内核不默认挂载cgroupfs并禁用内存子系统(伙计们建议用cgroup_enabled =内存重新启动),而openSUSE 13.1与所有的开箱(主要由于systemd)附带。
所以首先,创建挂载点并挂载cgroupfs(如果尚未完成的话):
mkdir /sys/fs/cgroup/cpu mount -t cgroup -o cpuacct,cpu cgroup /sys/fs/cgroup/cpu mkdir /sys/fs/cgroup/memory mount -t cgroup -o memory cgroup /sys/fs/cgroup/memory
创建一个cgroup:
mkdir /sys/fs/cgroup/cpu/shell mkdir /sys/fs/cgroup/memory/shell
设置一个cgroup。 我决定改变cpu的份额 。 默认值为1024,所以如果有竞争者,将其设置为128将会将cgroup限制为所有cpu资源的11%。 如果仍然有空闲的cpu资源,他们将被给予mongodump。 您也可以使用cpuset来限制可用内核的数量。
echo 128 > /sys/fs/cgroup/cpu/shell/cpu.shares echo 50331648 > /sys/fs/cgroup/memory/shell/memory.limit_in_bytes
现在将PID添加到cgroup中,这也会影响到他们的所有孩子。
echo 13065 > /sys/fs/cgroup/cpu/shell/tasks echo 13065 > /sys/fs/cgroup/memory/shell/tasks
我运行几个测试。 尝试分配一堆内存的Python被OOM杀死:
myaut@zenbook:~$ python -c 'l = range(3000000)' Killed
我也跑了四个无限循环,第五个在cgroup中。 正如所料,在cgroup中运行的循环仅占cpu时间的45%,其余的则达到355%(我有4个内核)。
所有这些变化都无法在重启之后保存
您可以将此代码添加到运行mongodump的脚本,或者使用一些永久解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。