Linux运行mono占用cpu 100%的问题


0,线上有程序需要用到mono来运行,但是配置systemd的时候发现启动之后cpu占用率一直都在100%以上!

Snipaste_2019-12-11_12-24-44.png

1,本来还以为是systemd配置问题, 之后换成使用脚本直接执行也是一样的,CPU占用率还是一个鸟样.

2,偶然之间发现一个办法可以解决这个该死的CPU占用率过高问题!

安装supervisor守护进程

1
yum install supervisor.noarch -y

supervisor存放路径

1
2
3
4
[root@stark ~]# tail -2 /etc/supervisord.conf    //*supervisor的主配置文件

[include]
files = /data/config/supervisor/*.conf //*配置守护管理的程序存放位置

配置supervisor来管理mono程序

1
2
3
4
5
6
7
8
[program:example]                         //*程序的名称,用于supervisorctl命令的管理
directory=/opt/ //*命令执行的目录
command=/bin/mono /opt/example.exe //*启动程序的命令
autostart=true //*使用systemctl启动supervisor程序的时候自动启动example程序
autorestart=true //*程序异常退出自动重启
startsecs=10 //*这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了
stdout_logfile=/var/log/mono.log //*程序运行的标准日志输出路径
stderr_logfile=/var/log/mono_error.log //*程序运行的错误日志输出路径

3,supervisor程序的简单使用

1
2
3
4
5
6
systemctl start supervisord.service       //*使用systemd将supervisord程序启动起来
supervisorctl start example //*使用守护进程启动example程序
supervisorctl stop example //*关闭example程序
supervisorctl status expmple //*查看example程序的状态
supervisorctl update //*新增supervisor守护程序的时候需要更新
supervisorctl reload //*更新好之后需要reload重启一下

Snipaste_2019-12-11_13-02-09.png