Unoconv/libreoffice 命令行转换很慢
Unoconv/libreoffice command line convert very slow
我正在使用 unoconv 或 libreoffice 转换文档,odt->pdf
,PHP exec()
。这个过程在我的一台服务器上非常快(大约 1 秒)。
现在我有了另一个更快的服务器,这个过程将近 20 秒!
它具有相同的 20k 小文件。我用谷歌搜索,我设置了相同的配置,但找不到任何线索 - 可能是什么原因?
当我直接使用 unoconv 和 libreoffice 时,结果是一样的。当starting unoconv --listener
为first时,第一次转换大约需要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
我正在使用 unoconv 或 libreoffice 转换文档,odt->pdf
,PHP exec()
。这个过程在我的一台服务器上非常快(大约 1 秒)。
现在我有了另一个更快的服务器,这个过程将近 20 秒!
它具有相同的 20k 小文件。我用谷歌搜索,我设置了相同的配置,但找不到任何线索 - 可能是什么原因?
当我直接使用 unoconv 和 libreoffice 时,结果是一样的。当starting unoconv --listener
为first时,第一次转换大约需要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