以下のPHPスクリプトは現在、インスタンスストレージとMySQL用SSDマウントを備えたc3.large EC2インスタンスでホストされています。スクリプトが読み取るファイルは、インスタンスストレージデバイスの1つにあります。
スクリプトが最初に開始されたとき、予想どおり100%で実行されますが、数時間後、スクリプトは約5%まで遅くなり、最終的にMySQLのクロールへの挿入が遅くなります。
このプロセスを遅くするものについてのアイデアはありますか?おそらくIOPSの問題ですか?
$handle = fopen(TMP . 'zones/' . $destinationFile, 'r');
if ($handle) {
$x = 0;
$origin = '';
while (($line = fgets($handle)) !== false) {
$x = $x + 1;
$line = str_replace("\r", '', $line);
$line = str_replace("\n", '', $line);
if ($x > 61) {
$record = explode(' ', $line);
switch ($record[1]) {
case 'NS':
$domain = $record[0];
$nameserver = rtrim($record[2], '.');
if ($record[2] == $nameserver) {
$nameserver = $nameserver . '.' . $origin;
}
$domainId = $this->addDomain($domain, $origin);
$nameserverId = $this->addNameserver($nameserver);
$dnId = $this->addDomainNameserver($domainId, $nameserverId);
break;
case 'A':
echo 'Nameserver IP: ' . $record[2];
break;
}
} else {
if (strpos($line, '$ORIGIN') > -1) {
$origin = str_replace('$ORIGIN ', '', $line);
$origin = rtrim($origin, '.');
}
}
}
fclose($handle);
}
十分なメモリがありますか?使用中のスワップはありますか?'free -m'
—
ヤロスラフクセラ
メモリ:合計3855804k、使用済み3751244k、104560k無料、221980kバッファスワップ:合計0k、使用0k、空き0k、3170028kキャッシュ
—
ジェフリーL.ロバーツ
十分な空きメモリですか、それともスワップを追加する必要がありますか?
—
ジェフリーL.ロバーツ