[~] Refactor
This commit is contained in:
		
							parent
							
								
									da1fb2303f
								
							
						
					
					
						commit
						8bd38d3119
					
				@ -465,6 +465,17 @@ def eternal_oom(argv):
 | 
				
			|||||||
                msg='oom_kill, failed to kill pid %d' % pid
 | 
					                msg='oom_kill, failed to kill pid %d' % pid
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def oom_status():
 | 
				
			||||||
 | 
					        print(
 | 
				
			||||||
 | 
					            '\r%6.2f / %.2f %%, %6.2f / %.2f GiB' % (
 | 
				
			||||||
 | 
					                oom_mean_cpu() / os.cpu_count() * 100,
 | 
				
			||||||
 | 
					                options.cpu_limit / os.cpu_count() * 100,
 | 
				
			||||||
 | 
					                memory_stats()['mem_used'] / 1024 / 1024,
 | 
				
			||||||
 | 
					                options.memory_limit / 1024 / 1024,
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            end=''
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def first_check():
 | 
					    def first_check():
 | 
				
			||||||
        current_memory_stats = memory_stats()
 | 
					        current_memory_stats = memory_stats()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -505,10 +516,38 @@ def eternal_oom(argv):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    first_check()
 | 
					    first_check()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    last_total_cpu = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    last_cpu_high = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def oom_add_cpu(total_cpu):
 | 
				
			||||||
 | 
					        last_total_cpu.append(total_cpu)
 | 
				
			||||||
 | 
					        if len(last_total_cpu) > 30:
 | 
				
			||||||
 | 
					            del last_total_cpu[-30:]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def oom_mean_cpu():
 | 
				
			||||||
 | 
					        return sum(last_total_cpu) / (len(last_total_cpu) + 1e-8)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def oom_cpu_high():
 | 
				
			||||||
 | 
					        nonlocal last_cpu_high
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if oom_mean_cpu() > options.cpu_limit:
 | 
				
			||||||
 | 
					            if last_cpu_high is None:
 | 
				
			||||||
 | 
					                datetime.datetime.now().timestamp()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if datetime.datetime.now().timestamp() - last_cpu_high > 10:
 | 
				
			||||||
 | 
					                last_cpu_high = None
 | 
				
			||||||
 | 
					                return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    while True:
 | 
					    while True:
 | 
				
			||||||
        mem_used = memory_stats()['mem_used']
 | 
					        mem_used = memory_stats()['mem_used']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        t11 = oom_get_processes()
 | 
					        t11 = oom_get_processes()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        oom_add_cpu(t11['total_cpu'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        t8 = t11['by_mem']
 | 
					        t8 = t11['by_mem']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        t9 = t8
 | 
					        t9 = t8
 | 
				
			||||||
@ -524,13 +563,15 @@ def eternal_oom(argv):
 | 
				
			|||||||
            ])
 | 
					            ])
 | 
				
			||||||
            t4()
 | 
					            t4()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if t11['total_cpu'] > options.cpu_limit:
 | 
					        if oom_cpu_high():
 | 
				
			||||||
            pprint.pprint([
 | 
					            pprint.pprint([
 | 
				
			||||||
                'Killing [CPU]',
 | 
					                'Killing [CPU]',
 | 
				
			||||||
                pandas_row(t11['by_cpu'], 0),
 | 
					                pandas_row(t11['by_cpu'], 0),
 | 
				
			||||||
                t11['total_cpu'],
 | 
					                [options.cpu_limit, oom_mean_cpu(), t11['total_cpu']],
 | 
				
			||||||
            ])
 | 
					            ])
 | 
				
			||||||
            oom_kill(t11['by_cpu']['PID_x'][0])
 | 
					            oom_kill(t11['by_cpu']['PID_x'][0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        oom_status()
 | 
				
			||||||
        time.sleep(1)
 | 
					        time.sleep(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def resilient_vlc(stream=None):
 | 
					def resilient_vlc(stream=None):
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user