`Laravel`版`小丑路人社区`改版中,与`Hyperf版小丑路人社区`数据互动,此版本改版中……尚未彻底完结!

Q:

解决利用进程快速消费队列,CPU与内存100%的问题

<p><br/><img src="/storage/ueditor/image/20201127/1606484711718326.png" alt="1606484711718326.png"/></p><pre class="brush:php;toolbar:false"><pre style="background-color:#ffffff;color:#080808;font-family:&#39;JetBrains Mono&#39;;font-size:11.3pt;"><span style="color:#660000;background-color:#f7faff;"><br/><br/>$fp </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">popen</span><span style="background-color:#f7faff;">(</span><span style="color:#067d17;background-color:#f7faff;">&#39;top -b -n 2 | grep -E &quot;(Cpu\(s\))|(KiB Mem)&quot;&#39;</span><span style="background-color:#f7faff;">, </span><span style="color:#067d17;background-color:#f7faff;">&quot;r&quot;</span><span style="background-color:#f7faff;">);<br/></span><span style="color:#660000;background-color:#f7faff;">$res </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">fread</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$fp</span><span style="background-color:#f7faff;">, </span><span style="color:#1750eb;background-color:#f7faff;">1024</span><span style="background-color:#f7faff;">);<br/></span><span style="color:#0033b3;background-color:#f7faff;">if </span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$res</span><span style="background-color:#f7faff;">){<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">pclose</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$fp</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">var_dump</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$res</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"><br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#660000;background-color:#f7faff;">$sys_info </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">explode</span><span style="background-color:#f7faff;">(</span><span style="color:#067d17;background-color:#f7faff;">&quot;</span><span style="color:#0037a6;background-color:#f7faff;">\n</span><span style="color:#067d17;background-color:#f7faff;">&quot;</span><span style="background-color:#f7faff;">, </span><span style="color:#660000;background-color:#f7faff;">$res</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#660000;background-color:#f7faff;">$cpu_info </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">explode</span><span style="background-color:#f7faff;">(</span><span style="color:#067d17;background-color:#f7faff;">&quot;,&quot;</span><span style="background-color:#f7faff;">, </span><span style="color:#660000;background-color:#f7faff;">$sys_info</span><span style="background-color:#f7faff;">[</span><span style="color:#1750eb;background-color:#f7faff;">2</span><span style="background-color:#f7faff;">]);<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#660000;background-color:#f7faff;">$cpu_usage </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">trim</span><span style="background-color:#f7faff;">(</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">trim</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$cpu_info</span><span style="background-color:#f7faff;">[</span><span style="color:#1750eb;background-color:#f7faff;">0</span><span style="background-color:#f7faff;">], </span><span style="color:#067d17;background-color:#f7faff;">&#39;%Cpu(s): &#39;</span><span style="background-color:#f7faff;">), </span><span style="color:#067d17;background-color:#f7faff;">&#39;us&#39;</span><span style="background-color:#f7faff;">); </span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;">//</span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;font-family:&#39;宋体&#39;;">百分比<br/></span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp;</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">var_dump</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$cpu_usage</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"><br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#660000;background-color:#f7faff;">$mem_info </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">explode</span><span style="background-color:#f7faff;">(</span><span style="color:#067d17;background-color:#f7faff;">&quot;,&quot;</span><span style="background-color:#f7faff;">, </span><span style="color:#660000;background-color:#f7faff;">$sys_info</span><span style="background-color:#f7faff;">[</span><span style="color:#1750eb;background-color:#f7faff;">3</span><span style="background-color:#f7faff;">]); </span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;">//</span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;font-family:&#39;宋体&#39;;">内存占有量 数组<br/></span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp;</span><span style="color:#660000;background-color:#f7faff;">$mem_total </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">trim</span><span style="background-color:#f7faff;">(</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">trim</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$mem_info</span><span style="background-color:#f7faff;">[</span><span style="color:#1750eb;background-color:#f7faff;">0</span><span style="background-color:#f7faff;">], </span><span style="color:#067d17;background-color:#f7faff;">&#39;KiB Mem : &#39;</span><span style="background-color:#f7faff;">), </span><span style="color:#067d17;background-color:#f7faff;">&#39; total&#39;</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#660000;background-color:#f7faff;">$mem_used </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">trim</span><span style="background-color:#f7faff;">(</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">trim</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$mem_info</span><span style="background-color:#f7faff;">[</span><span style="color:#1750eb;background-color:#f7faff;">2</span><span style="background-color:#f7faff;">], </span><span style="color:#067d17;background-color:#f7faff;">&#39;used&#39;</span><span style="background-color:#f7faff;">));<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#660000;background-color:#f7faff;">$mem_usage </span><span style="background-color:#f7faff;">= </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">round</span><span style="background-color:#f7faff;">(</span><span style="color:#1750eb;background-color:#f7faff;">100 </span><span style="background-color:#f7faff;">* </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">intval</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$mem_used</span><span style="background-color:#f7faff;">) / &nbsp; &nbsp; </span><span style="color:#000000;background-color:#f7faff;font-style:italic;">intval</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$mem_total</span><span style="background-color:#f7faff;">), </span><span style="color:#1750eb;background-color:#f7faff;">2</span><span style="background-color:#f7faff;">); </span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;">//</span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;font-family:&#39;宋体&#39;;">百分比<br/></span><span style="color:#8c8c8c;background-color:#f7faff;font-style:italic;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp;</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">var_dump</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$mem_usage</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"><br/></span><span style="background-color:#f7faff;"><br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#0033b3;background-color:#f7faff;">if </span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$cpu_usage </span><span style="background-color:#f7faff;">&gt;= </span><span style="color:#1750eb;background-color:#f7faff;">30</span><span style="background-color:#f7faff;">){<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">var_dump</span><span style="background-color:#f7faff;">(</span><span style="color:#067d17;background-color:#f7faff;">&#39;CPU</span><span style="color:#067d17;background-color:#f7faff;font-family:&#39;宋体&#39;;">占用 超过</span><span style="color:#067d17;background-color:#f7faff;"> 30%</span><span style="color:#067d17;background-color:#f7faff;font-family:&#39;宋体&#39;;">,等待占用减少之后,再继续消费队列</span><span style="color:#067d17;background-color:#f7faff;">……&#39;</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#0033b3;background-color:#f7faff;">return</span><span style="background-color:#f7faff;">;<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;}<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;</span><span style="color:#0033b3;background-color:#f7faff;">if </span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$mem_usage </span><span style="background-color:#f7faff;">&gt;= </span><span style="color:#1750eb;background-color:#f7faff;">30</span><span style="background-color:#f7faff;">){<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#000000;background-color:#f7faff;font-style:italic;">var_dump</span><span style="background-color:#f7faff;">(</span><span style="color:#067d17;background-color:#f7faff;">&#39;</span><span style="color:#067d17;background-color:#f7faff;font-family:&#39;宋体&#39;;">内存占用 超过</span><span style="color:#067d17;background-color:#f7faff;"> 30%</span><span style="color:#067d17;background-color:#f7faff;font-family:&#39;宋体&#39;;">,等待占用减少之后,再继续消费队列</span><span style="color:#067d17;background-color:#f7faff;">……&#39;</span><span style="background-color:#f7faff;">);<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#0033b3;background-color:#f7faff;">return</span><span style="background-color:#f7faff;">;<br/></span><span style="background-color:#f7faff;"> &nbsp; &nbsp;}<br/></span><span style="background-color:#f7faff;">}</span></pre></pre><p><br/></p>
生活点滴
订阅

评论记录


评论/回复