我在Linux 64位(Redhat Enterprise)中有一個進程,它將100萬條記錄註冊到內存中,每條記錄爲4KB,因此總內存消耗約爲4千兆字節。在Linux中交換內存速度
我的電腦有2GB的RAM和3GB的交換內存。所以顯然部分數據將被放入交換內存。問題是我不知道爲什麼遍歷所有這些記錄真的需要很長的時間。我有一個循環遍歷每個記錄並做一些東西的功能。它可以和大約500,000條記錄一起工作,該功能只需要幾分鐘即可完成。但是,如果記錄數量增加一倍,即1,000,000條記錄,則需要數小時才能完成相同的功能。我在Linux中使用了top命令來檢查CPU負載,並且發現它大約90%(等待I/O的時間)。我想這可能會導致問題,但真的不知道爲什麼會發生。
我非常感謝你的任何有用的想法。
您的問題唯一的實際答案是購買更多的RAM。 RAM現在很便宜。 –
迭代時是否修改記錄? –
@Maxim不,我只是讀它並計算一些東西 – longbkit