kofpet 发表于 2014-08-06 16:17

puppet Out of memory

本帖最后由 kofpet 于 2014-08-06 16:23 编辑

环境:
centos 5.7 64位 内核:2.6.39
内存:8G
CPU:E5620
puppet version:2.7.25

通过使用puppet来管理节点服务器,在服务器上开启了四个puppetmasterd进程服务,但是老是过一段时间就报内存溢出,需要重启puppetmasterd才能解决。
有遇到这样情况的大神吗?


rdcwayx 发表于 2014-08-16 21:27

本帖最后由 rdcwayx 于 2014-08-16 21:32 编辑

puppet opensouce 还是 puppet enterprise?

我看到 free swap=0kb, 楼主加些虚拟内存吧。

http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/

先加2GB dd if=/dev/zero of=/swapfile1 bs=1024 count=1024000

wenhq 发表于 2014-08-18 13:58

   /proc//oom_adj (since Linux 2.6.11)
            This file can be used to adjust the score used to select which
            process should be killed in an out-of-memory (OOM) situation.
            The kernel uses this value for a bit-shift operation of the
            process's oom_score value: valid values are in the range -16
            to +15, plus the special value -17, which disables OOM-killing
            altogether for this process.A positive score increases the
            likelihood of this process being killed by the OOM-killer; a
            negative score decreases the likelihood.

            The default value for this file is 0; a new process inherits
            its parent's oom_adj setting.A process must be privileged
            (CAP_SYS_RESOURCE) to update this file.

            Since Linux 2.6.36, use of this file is deprecated in favor of
            /proc//oom_score_adj.

       /proc//oom_score (since Linux 2.6.11)
            This file displays the current score that the kernel gives to
            this process for the purpose of selecting a process for the
            OOM-killer.A higher score means that the process is more
            likely to be selected by the OOM-killer.The basis for this
            score is the amount of memory used by the process, with
            increases (+) or decreases (-) for factors including:

            * whether the process creates a lot of children using fork(2)
                (+);

            * whether the process has been running a long time, or has
                used a lot of CPU time (-);

            * whether the process has a low nice value (i.e., > 0) (+);

            * whether the process is privileged (-); and

            * whether the process is making direct hardware access (-).

            The oom_score also reflects the adjustment specified by the
            oom_score_adj or oom_adj setting for the process.

       /proc//oom_score_adj (since Linux 2.6.36)
            This file can be used to adjust the badness heuristic used to
            select which process gets killed in out-of-memory conditions.

            The badness heuristic assigns a value to each candidate task
            ranging from 0 (never kill) to 1000 (always kill) to determine
            which process is targeted.The units are roughly a proportion
            along that range of allowed memory the process may allocate
            from, based on an estimation of its current memory and swap
            use.For example, if a task is using all allowed memory, its
            badness score will be 1000.If it is using half of its
            allowed memory, its score will be 500.

            There is an additional factor included in the badness score:
            root processes are given 3% extra memory over other tasks.

            The amount of "allowed" memory depends on the context in which
            the OOM-killer was called.If it is due to the memory
            assigned to the allocating task's cpuset being exhausted, the
            allowed memory represents the set of mems assigned to that
            cpuset (see cpuset(7)).If it is due to a mempolicy's node(s)
            being exhausted, the allowed memory represents the set of
            mempolicy nodes.If it is due to a memory limit (or swap
            limit) being reached, the allowed memory is that configured
            limit.Finally, if it is due to the entire system being out
            of memory, the allowed memory represents all allocatable
            resources.

            The value of oom_score_adj is added to the badness score
            before it is used to determine which task to kill.Acceptable
            values range from -1000 (OOM_SCORE_ADJ_MIN) to +1000
            (OOM_SCORE_ADJ_MAX).This allows user space to control the
            preference for OOM-killing, ranging from always preferring a
            certain task or completely disabling it from OOM-killing.The
            lowest possible value, -1000, is equivalent to disabling OOM-
            killing entirely for that task, since it will always report a
            badness score of 0.

            Consequently, it is very simple for user space to define the
            amount of memory to consider for each task.Setting a
            oom_score_adj value of +500, for example, is roughly
            equivalent to allowing the remainder of tasks sharing the same
            system, cpuset, mempolicy, or memory controller resources to
            use at least 50% more memory.A value of -500, on the other
            hand, would be roughly equivalent to discounting 50% of the
            task's allowed memory from being considered as scoring against
            the task.

            For backward compatibility with previous kernels,
            /proc//oom_adj can still be used to tune the badness
            score.Its value is scaled linearly with oom_score_adj.

            Writing to /proc//oom_score_adj or /proc//oom_adj
            will change the other with its scaled value.

badb0y 发表于 2014-08-19 10:51

你client多少呀,8G还没内存?!机器上还有装别的东西不?!

kofpet 发表于 2014-08-20 16:14

puppet opensouce ,swap内存我们一般都不会用到的。回复 2# rdcwayx


   

rdcwayx 发表于 2014-08-20 18:01

回复 5# kofpet


    是不会用,还是没配好啊。 swap空间使用不是你手工控制的,系统会自动调配的。

你的报告里明显有个 free swap =0kb,你还是再按照这个查一下。

kofpet 发表于 2014-12-22 10:43

不好意思迟来的回复,系统我有开启自动内存回收机制的,但是还是会使用到swap,服务器上单单跑一个Puppet而已,8g内存应该是够用的。回复 6# rdcwayx


   
页: [1]
查看完整版本: puppet Out of memory