Unoconv/libreoffice 命令行转换很慢

Posted

技术标签:

【中文标题】Unoconv/libreoffice 命令行转换很慢【英文标题】:Unoconv/libreoffice command line convert very slow 【发布时间】:2016-02-23 19:40:37 【问题描述】:

我正在使用 unoconv 或 libreoffice 转换文档,odt->pdfphp exec()。这个过程在我的一台服务器上非常快(大约 1 秒)。 现在我有了另一个更快的服务器,这个过程需要将近 20 秒! 它使用相同的 20k 小文件。我用谷歌搜索,我设置了相同的配置,但找不到任何线索 - 可能是什么原因?

当我直接使用 unoconv 和 libreoffice 时,结果是一样的。当starting unoconv --listener第一次时,大约20秒就可以完成第一次转换。然后所有的转换又很快了。

简单的启动 Libreoffice 似乎要花很多时间,但为什么呢?

【问题讨论】:

【参考方案1】:

看来答案很简单……

在进程列表中我可以看到:

root      4197  1.1  0.2 1112580 66436 pts/2   Sl+  20:20   0:00 /usr/lib/libreoffice/program/soffice.bin --headless --invisible --nocrashreport --nodefault --nofirststartwizard --nologo --norestore --accept=socket,host=127.0.0.1,port=2002;urp;StarOffice.ComponentContext

似乎 LibreOffice 正在使用 IP 和端口进行一些内部通信,所以我关闭了防火墙 (iptables),它运行良好 - 从 20 秒到 1 秒!!

最后我发现,无法在防火墙上阻止 IP6 进行本地连接,这就是导致问题的原因。

将此规则添加到iptables.v6 配置文件后,一切正常:

ip6tables -A INPUT -i lo -j ACCEPT

【讨论】:

以上是关于Unoconv/libreoffice 命令行转换很慢的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 命令行界面和图形界面转换

如何将命令从 GitBash 转换为 Windows 命令行?

ImageMagick 命令行:将 PDF 转换为高清图像

在命令行上将 XLS 转换为 CSV

通过命令行Pandoc 来转换文件

用于将 TTF/OTF 字体转换为 SVG 的命令行工具