목록보기에서 모든 사용자 정의 게시물 유형에 대한 메타 데이터를 검색하는 WordPress


9

PHP가 죽어가는 WordPress에 문제가 있습니다. 메모리를 늘 렸지만 PHP 프로세스가 100 % CPU 사용량으로 이동 한 다음 죽고 Apache에서 500 오류가 발생합니다.

Apache가 무언가를 기록하거나 PHP / MySQL이 오류를 기록하도록 시도했지만 일반적인 500 오류 외에는 아무것도 기록되지 않습니다.

500 문제는 다음과 같은 목록 페이지에 있습니다.

/wp-admin/edit.php?post_type=artist

다음과 같이 날짜 정렬을 추가하면 현재 WordPress에 1200 개가 넘는 아티스트 항목이 있습니다.

/wp-admin/edit.php?post_type=artist&orderby=date

그런 다음 목록이 훌륭하고 빠르게로드됩니다! 나는 앉아서 MySQL 쿼리 로그를보고 WordPress가 10 개 정도의 목록을 생성하기 위해 모든 단일 게시물 (모든 1200 개)에 대한 메타 데이터를로드하는 것으로 보입니다. 쿼리 중 하나에 대해서만 92000 행이 반환됩니다. 고급 사용자 정의 필드와 자체 프레임 워크가있는 템플릿을 사용하고 있으므로 각 게시물에는 상당한 양의 메타 데이터가 첨부되어 있습니다. PHP가 처리하기에는 너무 많은 데이터라고 생각하고 여기에 한계가 있습니다. 1200 년 게시물은 내년에 쉽게 두 배가 될 것입니다.

초기 페이지로드를 강제로 날짜 정렬을 추가하거나 모든 메타 데이터를로드 할 때 발생하는 문제를 해결하려면 어떻게해야합니까?


ACF 및 기타 플러그인을 비활성화하려고 했습니까? 나는 한 번 비슷한 문제가 있다고 생각하며 여기서 범인은 WP 자체가 아니라 ACF와 관련이 있다고 생각합니다. 예를 들어 ACF는 메타 데이터를 수정본에 추가 한 다음이 모두를로드합니다. 다른 사람들이 나를 도울 수 있도록이 문제의 원인이 무엇인지 확인하십시오.
kraftner

@kraftner ive 님은 ACF를 사용 중지했으며 아무런 차이가 없습니다.
Paul Cullen

wp-config (WP_MAX_MEMORY_LIMIT)에서 얼마나 많은 메모리를 사용하고 있습니까? memory_limit에 대한 PHP.INI 값은 무엇입니까? 최대로 올리십시오. 또한 mysql 구성 파일을 살펴볼 것입니다.
Emanuel Rocha Costa

필자는 PHP와 WP_MAX_MEMORY_LIMIT를 일시적으로 512로 올려 아무 효과가 없었습니다. 내 mysql 설정 파일은 다음과 같습니다. default-storage-engine=MyISAM innodb_file_per_table=1 max_allowed_packet=268435456 open_files_limit=10000 query_cache_size=64M log_slow_queries = 1 log-slow-queries=/var/log/mysql.slow.log log-error=/var/log/mysqld.log general_log_file = /var/log/mysql_general.log
Paul Cullen

1
맞춤 게시물 유형 "아티스트"가 계층 적입니까 (예 : 페이지)? .. 그렇다면 모든 게시물이 관리 대시 보드에서 쿼리되므로 이는 범인 일 수 있습니다. 응용 프로그램에서 "아티스트"CPT에 대해 계층 구조를 false로 변경하면 메모리 문제가 완화되는지 확인할 수 있습니다
locomo

답변:


1

CPT 정의에서 계층 적 : false 를 변경 하십시오 (응용 프로그램이 허용하는 경우).

CPT가 계층으로 설정된 경우 : true로 인해 모든 게시물이 관리 대시 보드에서 쿼리되어 메모리 문제가 발생할 수 있습니다.


0

문제는 CPT가 계층으로 설정되어 이것을 계층으로 전환했다는 것입니다. functions.php에서 false는 문제를 해결했습니다.


1
본인의 답변을 수락하여이 질문을 닫을 수 있습니다.
cjbj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.