ПРОБЛЕМА СТАЛА:
У меня есть программа, которая подключается к серверу и отправляет хэш для поиска и возвращает какое-то изменение.
В моей текущей настройкеУ меня есть базовая система, которая отправляет запросы на сервер каждый из 1 в количестве.Таким образом, чтобы сделать несколько поисков, я использовал многопроцессорность в python, чтобы запустить 100 процессов, которые inturn выполняет поиск. Когда спустя некоторое время, когда я хочу узнать, как ведут себя мои дочерние процессы, выполняются CPU и Memory Stats, которые показывают интересное поведение только2 из 100 детей получают процессор и память, а отдых всегда равен 0.0.
Кто-нибудь знает, что происходит?Что-то не так с моей реализацией.
КОД SNIPPET
def start_scan(files):
"""
Multiprocessing scanner
"""
try:
for filedata in files:
start = time.time()
res = scan(os.path.join('/home/something/test/'+ filedata))
with open('result_clean.csv' , 'a') as f:
data_in_file = "Result {} for file {}".format(str(res),filedata)
f.write(data_in_file)
f.write('\n')
end = time.time()
logger.info('File {} took {} for processing'.format(filedata,end-start))
except Exception as e:
logger.error('Error in scanning files {}'.format(str(e)))
def clean_(self,worker=100):
pool = mp.Pool(processes=worker)
start = time.time()
input_files = []
file_path = self.folder_clean_scan
input_files.append(os.listdir(file_path))
targetLists = []
count = 0
for i in range(0, 1):
if (i < ( len(input_files) % 1)):
# This one gets a remainder
targetLists.append(input_files[count:(count + 1 + ( len(input_files) / 1))])
count += 1 + ( len(input_files) / 1)
else:
# No remainder
targetLists.append(input_files[count:(count + ( len(input_files) / 1))])
count += len(input_files) / 1
#print targetLists[0]
results = [ pool.apply_async(start_scan,
args=(x)) \
for x in targetLists ]
try:
output = [ p.get() for p in results ]
print output
except:
traceback.print_exc()
end = time.time()
print end -start
ИНФОРМАЦИЯ ПО ПАМЯТИ ПАМЯТИ
ps -ax -o %cpu,%mem,cmd | grep app
0.8 0.0 python app.py
3.3 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py
0.0 0.0 python app.py