分散式像素快取是傳統單一主機像素快取的延伸。分散式像素快取可以跨越多台伺服器,因此它可以在大小和交易容量方面進行擴展,以支援非常大的影像或大型影像序列。在一台或多台主機上啟動像素快取伺服器。當您讀取或操作影像且本地像素快取資源耗盡時,ImageMagick 會聯繫一或多個這些遠端像素伺服器來儲存或擷取像素。
對於真正的大型影像或大型影像序列,或者如果您的主機資源有限,您可以在一台或多台遠端主機上使用分散式像素快取。首先,在 policy.xml 安全性政策設定檔中設定您的共享密碼
<policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/>
在這裡,我們建立兩個分散式像素快取並從桌面使用它們
magick -distribute-cache 6668 & # start on 192.168.100.50 magick -distribute-cache 6668 & # start on 192.168.100.51 magick -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \ -define registry:cache:hosts=192.168.100.50:6668,192.168.100.51:6668 \ myhugeimage.jpg -sharpen 5x2 myhugeimage.png
對於大型影像序列,系統會以循環方式聯繫伺服器,以將負載分配到多個分散式像素快取(假設您有一個主機清單而不是單一主機)。在我們的範例中,桌面上有一些適度的資源,由 -limit 選項定義。對於較小的影像,它們會被分配到桌面上,直到指定的限制。
當使用分散式像素快取時,您的影像處理任務可能會執行得更慢,因為像素需要透過網路在客戶端和伺服器之間進行傳輸。由於網路流量增加,存取虛擬像素的演算法(例如 -sharpen)明顯比僅存取真實像素的演算法(例如 -negate)慢,最多慢 3 倍。
客戶端只能聯繫相容的分散式像素快取伺服器。相容性需要相同的 ImageMagick 程式庫介面、量子深度、HDRI 狀態、作業系統字組大小、位元組順序和密碼。分散式像素快取會檢查這些屬性,如果這些需求不滿足,則會擲出例外狀況。