Question

My CPU is at 100% and I don't know how to resolve this.

Hi all, I have a droplet used for hosting multiple web site and recently my CPU has reached 100% constantly these past few days and I have not touched the server for a while.

Installed are nginx, php, mysql, cron and docker.

I have used the top command and found there’s a process using a command called mh

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5208 82 20 0 855300 884 56 S 99.3 0.1 6:43.80 mh

I have tried rebooting the server, restarting cron, restarting docker, killing the process but it keeps coming back.

Has anyone got any idea whats happening or how to prevent this?

Appreciated


Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

For cpu at 100% most of the times is caused by ddos attacks. A good starting point would be to check your apache or nginx logs if using apache or nginx. The install fail2ban and start banning ip addresses which are generating weird get or post requests.

First clear all your current logs and then start watching the logs to see whats generating fast logs and you can initially ban then using ufw then later use the log to generate a fail2ban regex which should block such cases in the future.

Hello,

I think that the mh command is this MisterHouse Perl script here:

https://github.com/hollie/misterhouse

What I could suggest is running ps and checking out the full command:

sudo ps -aux | grep "mh"

That way you would be able to see the full command that is running rather than just the mh output.

Then you could go from there and decide if this is something that you need or not.

If you don’t need this service, you could remove it from your system.

Feel free to share the output of the ps command here.

Regards, Bobby

Hi,

I can’t learn much from your description,but there is a sample for you that once happened on me.Your server may be attacked,like DoS or CC.I think you’d better protect your server by using floating ip and try CloudFlare to avoid being that.And,change the password and the login port.Dont use 22 as the port.

Have a nice day.

Shiroka