how do i find a memory leak in Linux? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Come Celebrate our 10 Year Anniversary!Finding Memory Leak on LinuxMemory leak issue in Centos5Apache+PHP. Memory leak. StrangeDocker memory leak?What's the technique to find out bottleneck?Underused Apache server raise MaxRequestWorkers reached: memory leak?Understanding CPU% on Apache Extended Server StatusHow can I move only my website, not email, to a DigitalOcean droplet?Large CPU spike for proc (www-data)Proxy NDP, intermittent Address Unreach

Weaponising the Grasp-at-a-Distance spell

French equivalents of おしゃれは足元から (Every good outfit starts with the shoes)

newbie Q : How to read an output file in one command line

How does TikZ render an arc?

The Nth Gryphon Number

"Destructive power" carried by a B-52?

When does a function NOT have an antiderivative?

How do you write "wild blueberries flavored"?

Why not use the yoke to control yaw, as well as pitch and roll?

What is a more techy Technical Writer job title that isn't cutesy or confusing?

How can I prevent/balance waiting and turtling as a response to cooldown mechanics

My mentor says to set image to Fine instead of RAW — how is this different from JPG?

Why does BitLocker not use RSA?

Where and when has Thucydides been studied?

Determine whether an integer is a palindrome

In musical terms, what properties are varied by the human voice to produce different words / syllables?

Was the pager message from Nick Fury to Captain Marvel unnecessary?

Does the transliteration of 'Dravidian' exist in Hindu scripture? Does 'Dravida' refer to a Geographical area or an ethnic group?

2018 MacBook Pro won't let me install macOS High Sierra 10.13 from USB installer

How to achieve cat-like agility?

Problem with display of presentation

Where did Ptolemy compare the Earth to the distance of fixed stars?

What is the proper term for etching or digging of wall to hide conduit of cables

Is there a verb for listening stealthily?



how do i find a memory leak in Linux?



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Come Celebrate our 10 Year Anniversary!Finding Memory Leak on LinuxMemory leak issue in Centos5Apache+PHP. Memory leak. StrangeDocker memory leak?What's the technique to find out bottleneck?Underused Apache server raise MaxRequestWorkers reached: memory leak?Understanding CPU% on Apache Extended Server StatusHow can I move only my website, not email, to a DigitalOcean droplet?Large CPU spike for proc (www-data)Proxy NDP, intermittent Address Unreach



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








1















I have a digital ocean droplet. recently i combined it with another, and now the system will randomly (every couple days) completely max out on CPU usage (for a single user, not for the system) and it throws a bunch of "out of memory" errors. i cant use top to figure out what process is causing the problem because it happens randomly.



to try to solve the problem, i recently quadrupled the available memory and CPU power. the problem went away for about a month and now it's happening again, more often than before.



i dont know when its going to strike. and when it does, it locks up the entire system and i have to hard reboot. i checked /var/log/messages and i see a bunch of "out of memory" errors from php, mysqld, spamd, and some other stuff. how do i figure out which user is causing the problem, and more specifically, how do i figure out how to solve it?



for context, it's a regular web hosting system that has cpanel installed.










share|improve this question






















  • Setup a tool that periodically stores the memory usage of all your processes? Perhaps something as simple as a */5 cron that does something like ps aux > "/path/ps_output_$(date +%Y%m%d%H%M)". When it crashes, just look at what was happening 5 minutes before?

    – Zoredache
    Apr 15 at 19:29

















1















I have a digital ocean droplet. recently i combined it with another, and now the system will randomly (every couple days) completely max out on CPU usage (for a single user, not for the system) and it throws a bunch of "out of memory" errors. i cant use top to figure out what process is causing the problem because it happens randomly.



to try to solve the problem, i recently quadrupled the available memory and CPU power. the problem went away for about a month and now it's happening again, more often than before.



i dont know when its going to strike. and when it does, it locks up the entire system and i have to hard reboot. i checked /var/log/messages and i see a bunch of "out of memory" errors from php, mysqld, spamd, and some other stuff. how do i figure out which user is causing the problem, and more specifically, how do i figure out how to solve it?



for context, it's a regular web hosting system that has cpanel installed.










share|improve this question






















  • Setup a tool that periodically stores the memory usage of all your processes? Perhaps something as simple as a */5 cron that does something like ps aux > "/path/ps_output_$(date +%Y%m%d%H%M)". When it crashes, just look at what was happening 5 minutes before?

    – Zoredache
    Apr 15 at 19:29













1












1








1








I have a digital ocean droplet. recently i combined it with another, and now the system will randomly (every couple days) completely max out on CPU usage (for a single user, not for the system) and it throws a bunch of "out of memory" errors. i cant use top to figure out what process is causing the problem because it happens randomly.



to try to solve the problem, i recently quadrupled the available memory and CPU power. the problem went away for about a month and now it's happening again, more often than before.



i dont know when its going to strike. and when it does, it locks up the entire system and i have to hard reboot. i checked /var/log/messages and i see a bunch of "out of memory" errors from php, mysqld, spamd, and some other stuff. how do i figure out which user is causing the problem, and more specifically, how do i figure out how to solve it?



for context, it's a regular web hosting system that has cpanel installed.










share|improve this question














I have a digital ocean droplet. recently i combined it with another, and now the system will randomly (every couple days) completely max out on CPU usage (for a single user, not for the system) and it throws a bunch of "out of memory" errors. i cant use top to figure out what process is causing the problem because it happens randomly.



to try to solve the problem, i recently quadrupled the available memory and CPU power. the problem went away for about a month and now it's happening again, more often than before.



i dont know when its going to strike. and when it does, it locks up the entire system and i have to hard reboot. i checked /var/log/messages and i see a bunch of "out of memory" errors from php, mysqld, spamd, and some other stuff. how do i figure out which user is causing the problem, and more specifically, how do i figure out how to solve it?



for context, it's a regular web hosting system that has cpanel installed.







linux cpu-usage memory-leak






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Apr 15 at 19:07









KatushaiKatushai

1177




1177












  • Setup a tool that periodically stores the memory usage of all your processes? Perhaps something as simple as a */5 cron that does something like ps aux > "/path/ps_output_$(date +%Y%m%d%H%M)". When it crashes, just look at what was happening 5 minutes before?

    – Zoredache
    Apr 15 at 19:29

















  • Setup a tool that periodically stores the memory usage of all your processes? Perhaps something as simple as a */5 cron that does something like ps aux > "/path/ps_output_$(date +%Y%m%d%H%M)". When it crashes, just look at what was happening 5 minutes before?

    – Zoredache
    Apr 15 at 19:29
















Setup a tool that periodically stores the memory usage of all your processes? Perhaps something as simple as a */5 cron that does something like ps aux > "/path/ps_output_$(date +%Y%m%d%H%M)". When it crashes, just look at what was happening 5 minutes before?

– Zoredache
Apr 15 at 19:29





Setup a tool that periodically stores the memory usage of all your processes? Perhaps something as simple as a */5 cron that does something like ps aux > "/path/ps_output_$(date +%Y%m%d%H%M)". When it crashes, just look at what was happening 5 minutes before?

– Zoredache
Apr 15 at 19:29










1 Answer
1






active

oldest

votes


















2














Read the OOM messages. It will print out memory usage details at the time and the PID that was killed. That task is not necessarily the root cause, it just looked big to the kernel at the time.



Look at /proc/meminfo and watch processes with top. You should know approximately how much memory the system is sized for. Say a 4 GB instance intends 2 GB for DB shared memory, 1 GB for web server processes, and 1 GB for OS and admin tools. Any one of these categories exceeding their estimate would cause memory pressure.



Measure memory use per service precisely with cgroup accounting. Containers do this, although you have not said you are using containers.



systemd slices also use cgroups, if that is your service manager. Set DefaultMemoryAccounting=yes and review the output of systemd-cgtop. Try cgroup aware monitoring over time with tools like netdata's cgroups plugin. Set resource limits on the unit once you know what they should be.






share|improve this answer























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "2"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f963174%2fhow-do-i-find-a-memory-leak-in-linux%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    Read the OOM messages. It will print out memory usage details at the time and the PID that was killed. That task is not necessarily the root cause, it just looked big to the kernel at the time.



    Look at /proc/meminfo and watch processes with top. You should know approximately how much memory the system is sized for. Say a 4 GB instance intends 2 GB for DB shared memory, 1 GB for web server processes, and 1 GB for OS and admin tools. Any one of these categories exceeding their estimate would cause memory pressure.



    Measure memory use per service precisely with cgroup accounting. Containers do this, although you have not said you are using containers.



    systemd slices also use cgroups, if that is your service manager. Set DefaultMemoryAccounting=yes and review the output of systemd-cgtop. Try cgroup aware monitoring over time with tools like netdata's cgroups plugin. Set resource limits on the unit once you know what they should be.






    share|improve this answer



























      2














      Read the OOM messages. It will print out memory usage details at the time and the PID that was killed. That task is not necessarily the root cause, it just looked big to the kernel at the time.



      Look at /proc/meminfo and watch processes with top. You should know approximately how much memory the system is sized for. Say a 4 GB instance intends 2 GB for DB shared memory, 1 GB for web server processes, and 1 GB for OS and admin tools. Any one of these categories exceeding their estimate would cause memory pressure.



      Measure memory use per service precisely with cgroup accounting. Containers do this, although you have not said you are using containers.



      systemd slices also use cgroups, if that is your service manager. Set DefaultMemoryAccounting=yes and review the output of systemd-cgtop. Try cgroup aware monitoring over time with tools like netdata's cgroups plugin. Set resource limits on the unit once you know what they should be.






      share|improve this answer

























        2












        2








        2







        Read the OOM messages. It will print out memory usage details at the time and the PID that was killed. That task is not necessarily the root cause, it just looked big to the kernel at the time.



        Look at /proc/meminfo and watch processes with top. You should know approximately how much memory the system is sized for. Say a 4 GB instance intends 2 GB for DB shared memory, 1 GB for web server processes, and 1 GB for OS and admin tools. Any one of these categories exceeding their estimate would cause memory pressure.



        Measure memory use per service precisely with cgroup accounting. Containers do this, although you have not said you are using containers.



        systemd slices also use cgroups, if that is your service manager. Set DefaultMemoryAccounting=yes and review the output of systemd-cgtop. Try cgroup aware monitoring over time with tools like netdata's cgroups plugin. Set resource limits on the unit once you know what they should be.






        share|improve this answer













        Read the OOM messages. It will print out memory usage details at the time and the PID that was killed. That task is not necessarily the root cause, it just looked big to the kernel at the time.



        Look at /proc/meminfo and watch processes with top. You should know approximately how much memory the system is sized for. Say a 4 GB instance intends 2 GB for DB shared memory, 1 GB for web server processes, and 1 GB for OS and admin tools. Any one of these categories exceeding their estimate would cause memory pressure.



        Measure memory use per service precisely with cgroup accounting. Containers do this, although you have not said you are using containers.



        systemd slices also use cgroups, if that is your service manager. Set DefaultMemoryAccounting=yes and review the output of systemd-cgtop. Try cgroup aware monitoring over time with tools like netdata's cgroups plugin. Set resource limits on the unit once you know what they should be.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Apr 15 at 22:01









        John MahowaldJohn Mahowald

        9,0211713




        9,0211713



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Server Fault!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f963174%2fhow-do-i-find-a-memory-leak-in-linux%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to write a 12-bar blues melodyI-IV-V blues progressionHow to play the bridges in a standard blues progressionHow does Gdim7 fit in C# minor?question on a certain chord progressionMusicology of Melody12 bar blues, spread rhythm: alternative to 6th chord to avoid finger stretchChord progressions/ Root key/ MelodiesHow to put chords (POP-EDM) under a given lead vocal melody (starting from a good knowledge in music theory)Are there “rules” for improvising with the minor pentatonic scale over 12-bar shuffle?Confusion about blues scale and chords

            What if the end-user didn't have the required library?What is setup.py?What is a clean, pythonic way to have multiple constructors in Python?What does Ruby have that Python doesn't, and vice versa?What is the reason for having '//' in Python?How do I create a namespace package in Python?How to package shared objects that python modules depend on?setuptools vs. distutils: why is distutils still a thing?Navigation in Windows 10 vs code not going to virtualenv library when the same library is installed at user levelPython create package for local usePackaging a project that uses multiple python versionsWhy is permission denied on pip install except for when “--user” is included at end of command?

            Why did Thanos need his ship to help him in the battle scene?Which actor plays Thanos in the Avengers mid-credits scene?Are there economic implications portrayed in comics where the buildings and cities are ruined almost daily?Old X-Men comic where team travels to alien world with a ring-like sun that needs recharging?Why does Ego need help sleeping?Is there an objective answer to who “the strongest Avenger” is?How did Banner get unstuck?Why did Thanos get hit?How did Thanos (or anyone) know the Infinity Stones would give him this power?Did Thanos leave Eitri alive for his after-sales service?In Avengers 1, why does Thanos need Loki?