2015-07-04 84 views
0

我試圖設置上傳到谷歌雲存儲,通常我會有大約200個併發上傳大小爲5到10kb的文件。當我使用與本地ceph s3兼容存儲相同的代碼時,上傳時間僅爲2-3ms(這是顯而易見的),並且當上傳到Google s3類存儲時,如果我有3到5個線程,則上傳時間爲通常在200毫秒內爲一個文件。但是,只要我達到像樣的併發性 - 我會在上傳時間上獲得線性增量。上傳多個小文件需要60秒才能完成

前10個文件在200ms內上傳,接下來的10個在5s內,接下來的10個在10s內等等,直到60s。 如果我使用多個進程 - 結果是一樣的。我正在使用nodejs來執行https://github.com/Automattic/knox模塊的上傳,池被關閉,所以它不是排隊的套接字問題。我已經測試了啓用池,maxSockets設置爲500左右,沒有多大幫助。在使用sockstat進行檢查時,同時我只能爲Google服務器打開多達40個連接,即使我會使用16個進程同時啓動超過500到1000個上傳。這非常奇怪。

任何人都可以幫助我診斷問題嗎?谷歌允許從單個IP地址打開的連接是否有限制?

我敢肯定,這不是我的代碼的問題,因爲事先我在本地s3存儲中使用它(本地我的意思是我有一個包含20個磁盤的機器的集羣,即使它在相同的數據中如果在阻塞操作或缺少套接字或類似的情況下會出現問題,我會發現上傳時間的增加也是如此,但使用ceph時沒有這種情況)。原因我想遷移到谷歌的是,管理垂死的硬盤驅動器是相當惱人的,並且經常發生

回答

0

Google's quotas page

套接字

日報數據和每分鐘(突發)數據限制 使用套接字的應用程序在每分鐘和每天的基礎上進行速率限制。每分鐘限制被設置爲處理來自應用程序的突發行爲。

該頁面還顯示限制。您可能會遇到它們,或者它可能是Google運行您的應用程序的硬件限制。

+0

我不認爲它可能會碰到套接字限制,因爲我已經測試過這隻有一個進程,以及套接字池,在那裏我會有套接字預先打開,它不會使區別,整體畫面是一樣的 – Vitaly

相關問題