일부 페이지에 대한 응답을 보내기 전에 아파치 "대기"30 초


1

owncloud 또는 gitlist와 같은 일부 웹 서비스를 호스팅하기 위해 라즈베리 파이를 사용합니다. 최근에 작은 작은 rss를 추가했는데, 아파치가 PHP 페이지의 회신을 보내기 위해 30 초 동안 대기하는 것을 제외하고는 모든 것이 잘 작동합니다. 그리고 그것은 ttrss (작은 작은 rss)로만 수행합니다 .php-ac를 설치 한 후 owncloud가 좋습니다.

apache의 access.log는 30 초까지 아무것도 표시하지 않습니다.

error.log에는 다음이 있습니다.

[Sun Mar 17 10:23:17 2013] [error] [client 192.168.0.12] PHP Strict Standards:  Declaration of SanitizeDummy::sanitize() should be compatible with SimplePie_Sanitize::sanitize($data, $type, $base = '') in /var/www/ttrss/include/functions.php on line 14, referer: http://pi.local/ttrss/index.php

매번 index.php 페이지를로드하지만 30 초가 멈 추면 오류가 표시됩니다 (거의 모든 것이로드 될 때).

그것은 index.php와 prefs.php에 대해서만 (그리고 로그인 페이지에 대해서는 사용자가 로그인 할 때만 빠릅니다)

ttrss 페이지는 php-ac에 대해 이야기하지만 아무것도 변경되지 않았습니다.

이것이 구성 문제입니까? 나는 오류 메시지와 관련이 있다고 생각하지 않지만 어쩌면 내가 틀렸다.

(나는 이미 raspberrypi.stackexchange.com을 요청했지만 여기에 더 많은 기회가 있다고 말했습니다.)

답변:


1

나는 그것이 다음과 같은 이유로 발생한다고 확신합니다.

  • 페이지를 연 상태에서 피드를 업데이트하도록 tt-rss를 구성했습니다 (config.php의 SIMPLE_UPDATE_MODE 매개 변수).
  • 당신은 많은 피드를 가지고 있으며 tt-rss는로드시 Apache를 업데이트하려고 시도하고 있으며 Apache는 30 초 미만의 모든 작업을 수행 할 수있는 CPU 전력이 없기 때문에 PHP 실행 시간 제한이기 때문에 Apache 시간이 초과되었습니다.

이 경우 다음을 수행하는 것이 좋습니다.

  • 구성을 다음으로 변경하십시오.
    • 'SIMPLE_UPDATE_MODE', 거짓
  • 크론 작업에서 피드 업데이트를 실행하십시오 (데비안 및 www-data에서 해당 상황에 맞게 조정).

    */15 * * * * cd /usr/share/tt-rss/www && /usr/bin/php update.php -feeds > /dev/null

문제를 잡기 위해 오류를내는 것을 선호합니다. 최신 릴리스 (이 글을 쓰는 시점에서 1.7.4)를 사용하면 질문에 붙여 넣은 살균 오류가 발생합니다. update.php 스크립트와 관련이 있지만 그렇지 않으면 가짜입니다. 이를 수정하기위한 패치는 https://github.com/gothfox/Tiny-Tiny-RSS/commit/3fd035f5eb56c96b163d99503ae20f79691a4e75 입니다.

tt-rss의 피드 업데이트에 대한 추가 정보 : http://tt-rss.org/redmine/projects/tt-rss/wiki/UpdatingFeeds

면책 조항 : 프로세스가 죽을 수 있고 아무도 말하지 않기 때문에 update_daemon2.php 접근 방식이 마음에 들지 않으므로 항상 항상 작동하도록 daemontools 또는 비슷한 것을 통해 실행해야합니다. 또한 코드를 업데이트하는 경우 새 코드를 다시로드하려면 코드를 중지해야합니다.

도움이 되길 바랍니다.


방금 확인했는데 SIMPLE_UPDATE_MODE가 이미 false입니다. ttrss / mobile 페이지와 함께 기본 데스크탑 인터페이스에서만 발생하는 것으로 나타났습니다. 나는 힘이 부족한 것이 이상하다는 것을 알았습니다. 왜냐하면 페이지보다 더 무거운 페이지를 처리 ​​할 수 ​​있기 때문입니다. 어디에 걸려 있는지 모니터링하는 방법이 있습니까? . (update_daemon2.php의 경우 확실하게 워치 독 스크립트를 만들었습니다)
eephyne

따라서 아파치가 CPU를 먹는다는 것을 알면 문제는 아파치가 아니라 웹 브라우저 내에서 PHP를 실행하는 아파치 모듈 인 mod_php를 사용하기 때문입니다. 데비안을 사용하고 있습니까?
Ender

예, 데비안 기반입니다. 시간이 걸리는 것을보기 위해 페이지 실행을 디버깅 할 수 있습니까?
eephyne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.