![CUPS 伺服器需要很長時間才能列印某些作業](https://rvso.com/image/1316142/CUPS%20%E4%BC%BA%E6%9C%8D%E5%99%A8%E9%9C%80%E8%A6%81%E5%BE%88%E9%95%B7%E6%99%82%E9%96%93%E6%89%8D%E8%83%BD%E5%88%97%E5%8D%B0%E6%9F%90%E4%BA%9B%E4%BD%9C%E6%A5%AD.png)
我設定了一個 CUPS 伺服器,Windows 電腦可以在該伺服器上進行列印。除了 Adobe Acrobat Pro 之外,一切似乎都運作良好(Microsoft Office 和我嘗試過的其他一些程式)。成功執行列印作業需要很長時間(有時約 40 分鐘)。
我將 CUPS LogLevel 設為“調試”,並且我觀察到這些始終是掛起之前的最後幾行:
...
D [25/May/2012:15:09:24 -0700] cupsdSetBusyState: Not busy
D [25/May/2012:15:09:24 -0700] cupsdReadClient: 12 POST /printers/printer HTTP/1.1
D [25/May/2012:15:09:24 -0700] cupsdSetBusyState: Active clients
D [25/May/2012:15:09:24 -0700] cupsdAuthorize: No authentication data provided.
D [25/May/2012:15:09:24 -0700] cupsdReadClient: 12 1.0 Print-Job 2
在最後一行之後,有一段時間沒有任何反應。
沒有什麼,除了一遍又一遍重複的這些行:
D [25/May/2012:15:15:03 -0700] Report: clients=1
D [25/May/2012:15:15:03 -0700] Report: jobs=72
D [25/May/2012:15:15:03 -0700] Report: jobs-active=0
D [25/May/2012:15:15:03 -0700] Report: printers=2
D [25/May/2012:15:15:03 -0700] Report: printers-implicit=0
D [25/May/2012:15:15:03 -0700] Report: stringpool-string-count=8555
D [25/May/2012:15:15:03 -0700] Report: stringpool-alloc-bytes=11344
D [25/May/2012:15:15:03 -0700] Report: stringpool-total-bytes=163552
D [25/May/2012:15:15:15 -0700] cupsdNetIFUpdate: "lo" = localhost:631
D [25/May/2012:15:15:15 -0700] cupsdNetIFUpdate: "eth0" = <server-ip>:631
D [25/May/2012:15:15:15 -0700] cupsdNetIFUpdate: "lo" = localhost:631
D [25/May/2012:15:15:15 -0700] cupsdNetIFUpdate: "eth0" = <server-ip>%eth0:631
這些不斷重複,直到一段任意(且變化的)時間之後,當我看到這些行時,文件很快就開始列印。
D [25/May/2012:15:15:35 -0700] Print-Job http://<server-ip>:631/printers/printer
D [25/May/2012:15:15:35 -0700] [Job ???] Auto-typing file...
I [25/May/2012:15:15:35 -0700] [Job ???] Request file type is application/postscript.
D [25/May/2012:15:15:35 -0700] cupsdMarkDirty(----J-)
...
然而,從 Microsoft Word 列印不會產生這樣的掛起:
...
D [25/May/2012:14:17:25 -0700] cupsdReadClient: 17 1.0 Print-Job 2
D [25/May/2012:14:17:25 -0700] Print-Job http://<server-ip>:631/printers/printer
...
然而,Wireshark 和 tcpdump 表明通訊始終在發生。
您對我如何解決這個問題有什麼想法嗎?
編輯
我再次列印了基本上相同的文檔。這次,我在掛起之前觀察到一些不同的情況:
D [25/May/2012:15:50:02 -0700] cupsdReadClient: 17 POST /printers/printer HTTP/1.1
D [25/May/2012:15:50:02 -0700] cupsdAuthorize: No authentication data provided.
D [25/May/2012:15:50:02 -0700] cupsdReadClient: 17 1.0 Print-Job 2
D [25/May/2012:15:50:02 -0700] cupsdReadClient: 21 1.0 Get-Jobs 10
D [25/May/2012:15:50:02 -0700] Get-Jobs http://<server-ip>:631/printers/printer
D [25/May/2012:15:50:02 -0700] Returning IPP successful-ok for Get-Jobs (http://<server-ip>:631/printers/printer) from <client-ip>
D [25/May/2012:15:50:23 -0700] Report: clients=4
D [25/May/2012:15:50:23 -0700] Report: jobs=73
D [25/May/2012:15:50:23 -0700] Report: jobs-active=0
D [25/May/2012:15:50:23 -0700] Report: printers=2
...
D [25/May/2012:15:54:23 -0700] Report: stringpool-alloc-bytes=11376
D [25/May/2012:15:54:23 -0700] Report: stringpool-total-bytes=167048
D [25/May/2012:15:54:30 -0700] Closing client 12 after 300 seconds of inactivity...
D [25/May/2012:15:54:30 -0700] cupsdCloseClient: 12
D [25/May/2012:15:54:30 -0700] Closing client 13 after 300 seconds of inactivity...
D [25/May/2012:15:54:30 -0700] cupsdCloseClient: 13
D [25/May/2012:15:54:40 -0700] cupsdNetIFUpdate: "lo" = localhost:631
D [25/May/2012:15:54:40 -0700] cupsdNetIFUpdate: "eth0" = <server-ip>:631
...
D [25/May/2012:15:55:23 -0700] Report: stringpool-total-bytes=167048
D [25/May/2012:15:55:32 -0700] Print-Job http://<server-ip>:631/printers/printer
D [25/May/2012:15:55:32 -0700] [Job ???] Auto-typing file...
I [25/May/2012:15:55:32 -0700] [Job ???] Request file type is application/postscript.
D [25/May/2012:15:55:32 -0700] cupsdMarkDirty(----J-)
...
文件於 15:56 從印表機輸出,但這似乎是迄今為止延遲最大的部分。
編輯2
我應該注意到,從 Adobe Acrobat 列印到 XPS 文件,然後從XPS文件不會產生這樣的延遲。因此看來 Adobe Acrobat 是罪魁禍首。
解決方案
我最終透過為印表機選擇非通用的 postscript 驅動程式(在 Windows 中)解決了這個問題。
答案1
您是否查看過 Adobe Acrobat 產生的列印檔案的大小?
如果與 Word 相比非常大,這可以解釋延遲。