Unoconv/libreoffice 命令行转换非常慢


Unoconv/libreoffice command line convert very slow

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

当我直接使用 unoconv 和 libreoffice 时,结果是相同的。第一次starting unoconv --listener时,可以在大约 20 秒内进行第一次转换。然后所有转换都很快。

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

答案似乎很简单...

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

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