나는 혜성을 PHP로 사용하는 웹 사이트를 만들었습니다. 오래 동안 나는 약간의 연구를하고 자습서를 찾았으므로 많은 양의 자원을 사용한다는 점을 제외하면 서버에 특별한 요구 사항을 구현하는 것이 매우 쉬운 것처럼 보인다. 이제는 스크립트에서 90 %의 CPU 리소스를 먹고 있다는 알림을 받았습니다. (스크립트를 껐지 만 지금은 내 질문에 대해 가장 잘 사용해야합니다.) node.js에 대해서도 읽었을뿐 읽고 서버에 대한 몇 가지 요구 사항을 필요로하는 어떤 좋은 쉽게이 상황에서 솔루션을 구현하자 내가이 혜성 스크립트에서 2000 사용자 매일을 말한다면 php 혜성 : CPU 리소스를 먹는 것
이 그 VPS 또는 전용 서버와 괜찮을까요편집???
/*CLOSE THE SESSION WITH USER DATA*/
session_write_close();
// set time expire unlimited
set_time_limit(0);
$OldPostID = isset($_REQUEST['OldPostID']) ? intval($_REQUEST['OldPostID']) : 0;
$result_set_query_1 = $MClass->MyPostings($PageOwner);
if (mysql_num_rows($result_set_query_1))
{
$o = 0;
while ($r = @mysql_fetch_array($result_set_query_1))
{
$PID = $r['PID'];
}
}
$NewPostID = $PID;
while ($NewPostID <= $OldPostID)
{
usleep(10000); // sleep 10ms to unload the CPU
clearstatcache();
$result_set_query_2 = $MClass->MyPostings($PageOwner);
if (mysql_num_rows($result_set_query_2))
{
$o = 0;
while ($rs = @mysql_fetch_array($result_set_query_2))
{
$PID = $rs['PID'];
}
}
$NewPostID = $PID;
}
// return a json array
$result_set_posts = $MClass->GetAllMyPostings($PageOwner, $OldPostID, 0);
}
감사합니다. 방금 혜성에 사용하는 코드로 질문을 업데이트했습니다. 무제한 사용 set_time_limit. 이 코드 조각에 문제가 있는지 확실하지 않습니다. 고마워요 – 99Points
@ 99 포인트 괜찮아요 -하지만 여전히 많이 말하지 않습니다! CPU는 어디로 가고 있습니까? MYSQL 쿼리입니까? 쿼리가 인덱스를 검색하고 있습니까, 아니면 검색 중입니까? 10 개의 행 또는 1 천만 개의 행이있는 SQL DB? 배짱이 드러내지 않으면 말하기가 어려울 것입니다. 그러나, 아래의 nanosleep 아이디어를 시도하고 SQL 때문에 SQL 결과가 제한적으로 시도하십시오. – FredTheWebGuy
그리고 IO는 SQL 사용과 직접 관련이있는 IO 외에도 스크립트의 속도 저하의 가장 큰 원인이기 때문에 SQL을 가능성으로 언급하고 있습니다. – FredTheWebGuy