อันนี้เอามาจากโพสนี้ ไม่ได้เจอเอง คิดว่าน่าจะแก้ได้แล้วเพราะเจ้าของโพสมากดไลค์ แต่ไม่แจ้งผล
ปัญหาที่เกิดคือเค้าบอกว่าเว็บช้ามาก เพราะ Really Simple CAPTCHA และขนาดของ plugin ใหญ่มาก (พวก cache ภาพที่ gen แล้วต่างๆ) ตอนแรกผมไม่เชื่อเท่าไหร่ เพราะผมคิดว่ามันไม่น่าจะช้าได้จากตัวนี้ จนกระทั่ง เค้าใช้ P3 Profiler มาให้ดูจริงๆ ผมก็เลยไปลองไล่ดู Code
ผมเดาว่าสาเหตุนั้นมาจากตอน clean up พวกภาพที่หมดอายุต่างๆ ทำให้มันกิน resource จากตัวอย่างคือ loop อ่าน meta file 20000 กว่ารอบ เพื่อลบไฟล์ที่ไม่ใช้ (ยิ่งถ้าใช้พวก NFS นะ โคตรช้า)
public function cleanup( $minutes = 60 ) { return 0; }
(ปิดการทำงานของ clean up เพื่อไม่ให้เว็บช้า เราจะย้ายไปทำใน background แทน)
<?php $minutes=60; $dir = trailingslashit( path_join( dirname( __FILE__ ), 'tmp' ) ); $dir = str_replace( '\\', '/', $dir ); $dir = preg_replace( '|/+|', '/', $dir ); if ( ! @is_dir( $dir ) || ! @is_readable( $dir ) ) return false; $is_win = ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) ); if ( ! ( $is_win ? win_is_writable( $dir ) : @is_writable( $dir ) ) ) return false; $count = 0; if ( $handle = @opendir( $dir ) ) { while ( false !== ( $filename = readdir( $handle ) ) ) { if ( ! preg_match( '/^[0-9]+\.(php|txt|png|gif|jpeg)$/', $filename ) ) continue; $file = $dir . $filename ; $file = str_replace( '\\', '/', $dir ); $file = preg_replace( '|/+|', '/', $dir ); $stat = @stat( $file ); if ( ( $stat['mtime'] + $minutes * 60 ) < time() ) { @unlink( $file ); $count += 1; } } closedir( $handle ); } ?>
(เป็นไฟล์สำหรับ clean up แบบ manual)
จบ เอาไปทดสอบได้เลยครับ