1

shell_execJenkinsで起動すると、コマンドと組み合わせるとfacter非常に遅くなるという問題があります。facter(のような)以外のコマンドwhoamiは高速です。

このコードは、最近 14.x から 18.04.1 LTS にアップグレードされた Ubuntu VM で実行されます。Ubuntu 14.x では、その問題は発生しませんでした。Facter は現在バージョン 3.11.3 です。

次のコードを使用して、shell_execと組み合わせて速度の問題を解決しました。facter

<?php

/**
 */
require_once 'AbstractTestCase.php';

/**
 */
class FacterTest extends AbstractTestCase
{

    /**
     */
    public function testSpeedDebug()
    {
        Core_Util_Debug::performanceStart('whoami');
        shell_exec('whoami');
        Core_Util_Debug::performanceEnd('whoami');

        Core_Util_Debug::performanceStart('facter');
        shell_exec('facter hostname');
        Core_Util_Debug::performanceEnd('facter');

        die (PHP_EOL);
    }
}

CLI を介して手動で開始すると、出力は次のようになります。

>> name: whoami | time: 0.005261 s | memory: 3.3359 kB RAM
>> name: facter | time: 0.160292 s | memory: 0 B RAM

Jenkins を起動すると、出力は次のようになります。

>> name: whoami | time: 0.005495 s | memory: 3.3359 kB RAM
>> name: facter | time: 8.652776 s | memory: 0 B RAM

Jenkinsで起動すると遅い理由を誰かが知っていますか(〜8倍遅い)?

前もって感謝します。

追加情報: Bamboo で簡単に試してみたところ、動作は Jenkins と同じです。

4

0 に答える 0