1

~15,000 件の投稿があり、DB サイズが 14.4M のブログがあります。

Web サイトはフロント エンドからは非常に高速に動作しますが、編集後とリスト作成後の画面がハングします。部分的に読み込まれるか、まったく読み込まれません。

さらに悪いことに、試した後、サーバー全体が動かなくなります...

プロセス マネージャーを調べると、/public_html/wp-admin/edit.phpまたは/public_html/wp-admin/post.php(それぞれポスト リストとポスト エディット - ええ、それらが後方に見えることはわかっています) が 99% の CPU を消費していることがわかりました。

私はこの問題を第 3 層の Bluehost VPS で経験したので、Heart Internet Hybrid 250 (12 コア、28 GB RAM) にアップグレードして問題を軽減しようとしました - さいころはありません :/

これを解決するための助けをいただければ幸いです - phpMyAdmin を介してページを編集する必要があることをクライアントに伝えることはオプションではありません :)

編集:ハングしているプロセスの明確化

edit2: MySQL プロセスの実行:

Id      User    Host        db  Command     Time    State   Info

338     leech.. localhost   leech.. Sleep   1959            NULL
426     tmhp_.. localhost   tmhp_.. Sleep   581             NULL
433     root    localhost   NULL    Sleep   132             NULL
441     root    localhost   NULL    Query   0       NULL    SHOW PROCESSLIST

プロセス例:

Pid     Owner   Priority    CPU %   Memory %    Command
29447   tmhp        0       99.8    0.6         /usr/bin/php /home/tmhp/public_html/wp-admin/edit.php

Edit3: これは適切かもしれません: 新規追加ページまたは編集後ページでは、タイトルが読み込まれて編集可能になりますが、コンテンツ エディターは途中で読み込まれます。さらに、テキストは表示されますが、白く、強調表示されている場合にのみ表示されます...

Edit4: ユーザー tmhp からの MySQL プロセスは、問題の原因となっているハング (99%) プロセスを強制終了した後、なくなります..ここで何かが起こっているのではないかと思います.

Edit5: この会話はwordpress.stackexchange.comに移動しました

十分な時間 (~3 ~ 5 分) があれば、編集後のページが完全に読み込まれ、プロセスが終了します。ただし、これはリスティング後のページでは発生しないようです。

さらに、編集後のページの問題をページ属性メタボックスに絞り込みました。

短期的な救済策として、次のことを行うプラグインを作成しました。

//Remove some features of pages so editing is faster
if (is_admin()) :
function my_remove_meta_boxes() {
    remove_meta_box('pageparentdiv', 'page', 'side');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;

function remove_page_attribute_support() {
    remove_post_type_support('page','page-attributes');
}

add_action( 'init', 'remove_page_attribute_support' );


// Remove the Posts and Pages menus from the admin screen
function custom_admincss() {
   echo '<style type="text/css">
           #menu-pages{display:none !important}
           #menu-posts{display:none !important}
         </style>';
}

add_action('admin_head', 'custom_admincss');
4

1 に答える 1

0

ページの投稿タイプの階層引数に固定しました。

階層的

(ブール値) (オプション) 投稿タイプが階層的かどうか (例: ページ)。

親を指定できるようにします。'supports' パラメーターには、エディター ページに親選択ボックスを表示するための 'page-attributes' が含まれている必要があります。

デフォルト: false

注:このパラメーターはページ用に計画されました。カスタム投稿タイプに選択するときは注意してください。多数のエントリ (たとえば 100 以上) を計画している場合は、メモリの問題が発生します。このパラメーターを true に設定すると、WordPress は投稿タイプの各管理ページの読み込み時に、すべてのメタデータとともに、その特定の投稿タイプのすべてのエントリを取得します。

さて、コアを上書きせずにページの階層サポートを削除するにはどうすればよいでしょうか?

于 2013-11-07T18:59:52.733 に答える