我有一個框架,由多用戶環境下用python編寫的不同工具組成。如何加速python啓動和/或減少加載庫時的文件搜索?
我第一次登錄到系統並啓動一個命令時,需要6秒鐘來顯示幾行幫助。如果我立即再次發出相同的命令,則需要0.1s。幾分鐘後,它回到6秒。 (短期緩存證明)
系統位於GPFS上,因此磁盤吞吐量應該可以,儘管由於系統中的文件數量而導致訪問可能很低。
strace -e open python tool | wc -l
顯示啓動該工具時正在訪問的2154個文件。
strace -e open python tool | grep ENOENT | wc -l
顯示1945個正在查找的缺少文件。 (一個非常不好的命中/錯過率是你問我:-)
我有一個預感,涉及加載工具的過多時間是通過查詢關於所有這些文件的GPFS消耗的,並且這些緩存給下一個(無論是系統還是GPFS級別),但我不知道如何測試/證明它。 我對系統沒有root訪問權限,我只能寫入GPFS和/ tmp。
可以改進這個python quest for missing files
?
關於如何以簡單的方式測試這個任何想法? (在/ tmp上重新安裝所有內容並不簡單,因爲涉及的軟件包很多,virtualenv也無濟於事(我認爲),因爲它只是鏈接gpfs系統上的文件)。
一個選項當然會有一個守護進程分叉,但這遠非「簡單」並且是最後的解決方案。
感謝您的閱讀。
事實上,我嘗試了這一點,它看起來很有希望,儘管所有默認庫都是在啓動時運行的,我無法告訴python應該從哪個文件加載模塊,但是讓它在目錄中搜索它,導致4 open()調用和至少2次失敗。我只希望有一種告訴python不要這樣做的方法。 – estani 2013-03-18 19:03:14