Как я могу зарезервировать ОЗУ для моего скрипта Python? - PullRequest
0 голосов
/ 13 марта 2019

Я делюсь сервером в моем университете с другими студентами.Оперативная память сервера слишком мала, и я сталкиваюсь с ситуацией, когда я почти никогда не могу запустить свои программы из-за ошибки памяти.Сценарий выполняется по частям, но если сервер перегружен, я облажался.

Есть ли у вас какие-либо советы?Возможно, есть способ зарезервировать оперативную память для моего процесса Python.Я знаю, что выпустить память из Python довольно нетривиально.Возможно, я смогу написать скрипт, который выделит память для моего Python, когда он станет свободным.После того, как мне достаточно, возможно, я смогу использовать gc.collect (), но каким-то образом гарантировать, что память останется на моем компьютере для выполнения сценариев?

Спасибо!

Редактировать: яЯ предоставляю шаг, где скрипт тормозит.Я сохраняю данные кусками.Я смог запустить его вчера!Я знаю, что могу увеличить количество кусков, но сегодня я потянул менее 5 ГБ ОЗУ, когда это произошло.

    for hour in np.arange(logins.hours.min(),logins.hours.max()+1):
        start_time = time.time()
        dict_choices=process_day(hour,dict_choices).copy()
        df=pd.DataFrame.from_dict(dict_choices,orient='index') 
        df['hour']=hour
        rezovi[i]=df
        i=i+1
        print("Handled hour {} in year {} in %s seconds (iteration {}) ---".format(-hour/mini,year,i) % round((time.time() - start_time),2))

        if ((i % 100)==0):
               rezultat=pd.concat([df for df in rezovi.values()], ignore_index=False).reset_index()
               keep=list(rezultat.columns.values[0:7])
               keep.append('hour')
               rezultat=rezultat[keep]
               rezultat=convert_types(rezultat,print_info=True)
               rezultat.to_csv('save/2018/chunk'+str(hour)+'.csv')
               del rezovi,rezultat,keep,df
               gc.collect()
               rezovi={}
               i=0
...