2015-07-01 7 views
0

Я установил задание Cron для моего PHP-кода для запуска каждые 20 минут. Но он каждый раз убивает экземпляр EC2 t2micro. Вот журнал сервера. Помощь Pls.PHP-код приносит EC2 каждый раз, когда он запускается

IP-172-31-42-52 Логин: [+20332,164336] Из памяти: Убить процесс 1241 (Java) оценка 174 или жертву ребенка
[+20332,192538] Убитые процесс 1241 (Java) всего-VM: 1473180kB, Anon-Новости: 176012kB, файл-Новости: 0Kb
[23932,654770] из памяти: убить процесс 1131 (туздЫ) забить 71 или жертвоприношение ребенка
[23932,690310] Убитые процесс 1131 (туздЫ) всего-VM: 908644kB, anon-rss: 72004kB, file-rss: 0kB
[39839.833448] Недостаточно памяти: процесс Kill 466 (mysqld) оценка 68 или жертва ребенка
[39839.845119] Убитый процесс 4616 (mysqld) до тал-VM: 908692kB, Anon-Новости: 68816kB, файл-Новости: 0Kb
[+39839,901289] Из памяти: убить процесс 4646 (туздО) забьет 69 или жертва ребенок
[39839,937446] Убитые процесс 4646 (туздО) total- М.: 908692kB, Anon-RSS: 70392kB, файл-RSS: 0kb
[+63862,861894] из памяти: убить процесс 6802 (туздЫ) забить 66 или жертву ребенка
[+63862,875681] Убитые процесс 6802 (туздЫ) всего-VM: 908176kB, Anon-Новости: 66820kB, файл-Новости: 0Kb
[134458,272131] end_request: ошибка ввода/вывода, DEV xvda, сектор 627665
[134458,288710] end_request: ошибка ввода/вывода, DEV xvda, сектор 627681
[ 134458.298582] end_request: ввод/вывод ошибка, DEV xvda, сектор 5577385
[134458,301842] end_request: ошибка ввода/вывода, DEV xvda, сектор 5577401
[134458,302578] end_request: ошибка ввода/вывода, DEV xvda, сектор 5577425
[134458,302578] end_request: I/ошибка O, DEV xvda, сектор 5544705
[134458,302578] end_request: ошибка ввода/вывода, DEV xvda, сектор 1890769
[134458,302578] end_request: ошибка ввода/вывода, DEV xvda, сектор 1889537
[134458,302578] end_request: Я/O error, dev xvda, сектор 1889601
[134458.302578] end_request: ошибка ввода-вывода, dev xvda, сектор 1889657

А вот код PHP

<?php 

$cf = dirname(__FILE__); 
if ($cf) chdir($cf); 

include_once('/var/www/html/clubberi.com/includes/incl.php'); 
$conn = ConnectToDatabese(); 
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; 

include_once('/var/www/html/clubberi.com/adm/cklog.php'); 

include_once('/var/www/html/clubberi.com/cls/trights.php'); 
global $rights; 
$rights = new TRights(); 
$rights->conn = $conn; 
$rights->Init(); 

$update_gallery="INSERT INTO GALLERY (NAZ,SCIMG,SCHEDULE,IUSER) VALUES "; 

$sql="SELECT ID,NAZ,INSTA_LINK FROM PLACE WHERE INSTA_LINK<>'' AND GENRE=416"; 
$rs=$conn->Execute($sql) or die("Ошибка выполнения $sql"); 

set_time_limit(240); 
    $i=0; 
$link = ""; 
while(!$rs->EOF) 
{ 
    $SCHEDULE = GetFieldFromSQL($conn,"SELECT ID FROM SCHEDULE WHERE DATE(ACTIONTIME)=CURDATE() AND PLACE=".$rs->fields['ID'] ,0); 
    if(!$SCHEDULE){ 
     $MAX_SC_ID = GetFieldFromSQL($conn,"SELECT MAX(ID) FROM SCHEDULE" ,0); 
     $curid = $MAX_SC_ID+1; 
     $nos = NewObject($conn,'TSchedule',$curid); 
     $nos->sf('NAZ','Some party - '.date('d.m.Y')); 
     $nos->sf('PLACE',$rs->fields['ID']); 
     $nos->sf('ACTIONTIME',date('d.m.Y')); 
     $s = $nos->BaseInsert(); 
     $SCHEDULE = $nos->id; 
    } 
    $jsonurl = "https://api.instagram.com/v1/locations/".$rs->fields['INSTA_LINK']."/media/recent?client_id=421b46699e074734932d59771fcd1daf"; 
     #echo $jsonurl; 
     $newUrl = htmlspecialchars_decode($jsonurl); 
     $json = file_get_contents($newUrl, 0, null, null); 
     #print_r("<br>".strlen($json)); 
     $json_output = json_decode($json, true); 

    while(isset($json_output['data'][$i]['images']['standard_resolution'])) 
    { 
      $CUR_IMG = GetFieldFromSQL($conn,"SELECT ID FROM GALLERY WHERE SCIMG=".sqlstr($json_output['data'][$i]['images']['standard_resolution']['url']) ,0); 
      if(!$CUR_IMG) 
      { 
       $update_gallery.="('image-".$i."',".sqlstr(hsc($json_output['data'][$i]['images']['standard_resolution']['url'])).",".$SCHEDULE.",".sqlstr($json_output['data'][0]['caption']['from']['id'])."),"; 
       $i++; 
      } 
    } 
    $rs->MoveNext(); 
} 

if($i){ 
    $update_gallery = substr($update_gallery, 0, (strlen($update_gallery)-1)); 
    $rs=$conn->Execute($update_gallery) or die("Ошибка выполнения $update_gallery"); 
    echo $i."images"; 
}else echo "no image "; 

?> 
+1

его ясно показывает 'Out of memory' в вашем файле журнала ... попробуйте улучшить ваши sql-запросы/код PHP .. –

ответ

2

Есть ли шанс, что она никогда не выходит из «standard_resolution» в то время как цикл? Если $CUR_IMG TRUE, $i никогда не увеличивается. Так что он останется в этом цикле ... навсегда!

+1

Я думаю, что вы ударили ноготь по голове. Наиболее распространенной причиной исчерпания памяти является бесконечный цикл. – Machavity

Смежные вопросы