Python çoklu işlem kitaplığını kullanırken garip bir sorunla karşılaştım.Python çoklu işlem - Bir işlem yapıldığında bellek nasıl bırakılır?
Kodum aşağıda çizilmiştir: Her "sembol, tarih" için bir işlem oluşturuyorum. Sonrasında sonuçları birleştiririm.
Bir işlemin bir "sembol, tarih" tuple için hesaplama yapması durumunda, belleğini bırakması beklenir. görünüşe göre bu durum böyle değil. Makinede askıya alınmış düzinelerce süreç (süreç havuzunu 7 bedene sahip olmamasına rağmen) görüyorum. CPU kullanmazlar ve hafızayı serbest bırakmazlar.
Bir işlemin hesaplamasını yaptıktan sonra belleğin nasıl serbest bırakılmasına nasıl izin veririm?
Teşekkürler! "Askıya" Ben ps komutu statüleri olarak gösterilen demek "S +"
def do_one_symbol(symbol, all_date_strings):
pool = Pool(processes=7)
results = [];
for date in all_date_strings:
res = pool.apply_async(work, [symbol, date])
results.append(res);
gg = mm = ss = 0;
for res in results:
g, m, s = res.get()
gg += g;
mm += m;
ss += s;
Bu Senaryomun kök neden dolayı 4Gb bellek% 90 tüketilmiştir> için düğüm yeniden başlatma neden oldu :) Teşekkürler! –