2011-09-13 79 views
3

我想提高腳本的速度,該腳本會將一個小的20kb文件上傳到cloudfiles,目前需要3秒,但看到它需要更多時間,最長可達7秒。Rackspace cloudfiles API相當慢

基本上它下面...

  • 服務器驗證
  • 連接
  • 獲取一個容器
  • 創建對象
  • 載荷從文件名

數據到對象嘗試使用cachegrind和webgrind找出w腳本部分很慢,事實證明這是CURL的一面。

這裏有一個有趣的帖子CURL with PHP - Very slow,暗示它可能與DNS查找有關,但我不是100%確定如何監視Windows上的流量,有什麼建議?

其他用戶對如何弄清楚爲什麼我的CURL請求很慢有任何建議嗎?

+0

那麼,什麼是慢? Rackspace或CURL? –

+0

我想弄明白這一點......如果我能看到CURL請求正在努力到達Rackspace的服務器,那麼它很可能是CURL,如果在Rackspace方面花費了大量時間,我可以假設有一個問題在那裏。 – Carlton

+2

只是爲了防止其他人遇到同樣的問題而對此問題提供反饋。 我將我的腳本移動到我的Rackspace服務器上,現在它絕對過得很好。 事實證明,如果腳本運行時可以找到環境變量,CURL將嘗試使用Rackspace的內部網絡。 查看構造函數中「CF_Connection」類的註釋。 – Carlton

回答

2

我有類似的問題。如果您將Rackspace Server與Rackspace Cloud文件一起使用,那麼您需要確保在代碼中使用正確的SNET設置。例如:

$connect_snet = true; 
$this->conn = new CF_Connection($this->auth, $connect_snet); 

這會將連接內部路由到Rackspace網絡;避免DNS查找等,希望你會看到提高的速度。

0

您也可以設定一個環境變量和PHP的雲文件API將自動使用服務網沒有你需要改變你的CF_Connection()代碼:

define('RACKSPACE_SERVICENET', 1); 
相關問題