• 16-12-2022, 21:50:43
    #1
    Google pagespeed tarafında :
    İlk sunucu yanıt süresini azaltın : 0,77 s

    Query Monitor WP Eklentisi :
    Page Generation Time : 0,5685s

    Bu değeri nasıl düşürebilirim? Sitenin harcadığı önemli bir kaynak yok aslında. Netinternet firmasında barınıyorum. 8GB ram mevcut. Nginx+Cache mevcut ve sitede eklenti olmamasına rağmen geç açıldığını söylüyor Google

  • 17-12-2022, 01:40:38
    #2
    Bazı yöntemlerle bu sorun çözülebilir ancak dikkatli olmalısınız.

    UYARI: İŞLEM ÖNCESİ KESİNLİKLE YEDEK ALIN

    Önce okuyunuz:
    https://www.r10.net/google-optimizas...post1081480366

    Bu noktadan itibaren, veritabanın çalışma motorlarını inceleyip ona göre bir yol izleyebilirsiniz. Select işlemi yoğun olabilir buna takılmayın. Burada yapılması gereken şey select işlemi akışını düzgün sağlamak veya stresliyse stresi azaltmaktır ama açıklamamda da belirttiğim gibi, select/insert işlemlerinin belki yükü azdır ama MySQL sunucusu optimizesiz olduğu için sunucu geç yanıt veriyordur ona göre bakarsınız artık. Bu konuda kararsızsanız veya bir şey bilmiyorsanız bu kısmı atlayın yani bir şey yapmayın.

    1. yöntem; her sorgu için update_post_term_cache, update_post_meta_cache ve cache_results gibi değerlerin false edilmesi yani durdurulması gerekir ki, sürekli select işlemi yaparak diski yormasın. Bunun için de tema ve eklentilerin yeniden elden geçirilmesi gerekir. Eklenti yok demişsiniz ama bu durumda tema ya da WordPress altyapısının incelenmesi gerekir.

    2. yöntem; Redis veya Memcached kullanarak bu sorguları belleğe alarak kullanmaktır. Redis kullanmanızı öneririm elbette ama sunucunuza, binen yüke, RAM miktarına ve sitenize göre konfigüre etmediğiniz sürece sunucuyu yorar ve sitenizi yavaşlatabilir, hatta daha da ağırlaştırabilir. İyi konfigüre edilmiş bir Redis çok verimli çalışır. Bu sayede ilgili sorgular sunucuyu fazla zorlamazlar. Ayrıca: Redis vs. Memcached karşılaştırmasını inceleyebilirsiniz.

    3. yöntem; ilgili eklentiyle veritabanını epey dizginleyebilirsiniz: https://tr.wordpress.org/plugins/ind...sql-for-speed/ ama unutmayın ki, ilgili 3 işlemin hepsi kritiktir ve uzmanlık gerektirir. Şayet bilginiz yoksa, fazla kurcalamanızı, hele hele veritabanıyla oynamanızı kesinlikle önermiyorum. Yine de denemeler yapmak isterseniz, en başta da dediğim gibi mutlaka yedek alın aksi halde sunucuyu ya da sitenizi riske atabilirsiniz. Tercih sizin.

    En güzel yöntem veritabanını (3.yöntemle değil) optimize etmek, Redis kullanarak sorguları belleklemek ama bunun için sunucunun size ait olması yani kısaca root yetkinizin olması gerekiyor.
  • 17-12-2022, 03:32:35
    #3
    Öncelikle bilgileriniz için teşekkürler. Sizin gibi açıklayıcı bilgiler paylaşan çok az kişi kaldı
    1- değerleri false yapmak için eklentilerin kodlarına müdahale mi etmemiz gerekiyor eğer durum böyleyse bu eklentileri kullanan herkes bu işlemi yapmak zorunda gibi anladım. Ve bu işlemi yaptığımda acaba ne kaybederim bu fonksiyon önemli bir işlev olabilir mi, false yapmamamız gerekebilir mi acaba. Ek olarak eklenti olarak rank-math, iletişim, litespeed cache kullanıyorum.
    2- Sunucuda memcached aktif ram kullanım değerlerim de şu şekilde: https://prnt.sc/QAQZCaqkiYtz
    3- Geçiçi çözüm olduğu için deneyemedim fakat bilgi için göz atıcam

    EfendiBey adlı üyeden alıntı: mesajı görüntüle
    Bazı yöntemlerle bu sorun çözülebilir ancak dikkatli olmalısınız.

    UYARI: İŞLEM ÖNCESİ KESİNLİKLE YEDEK ALIN

    Önce okuyunuz:
    https://www.r10.net/google-optimizas...post1081480366

    Bu noktadan itibaren, veritabanın çalışma motorlarını inceleyip ona göre bir yol izleyebilirsiniz. Select işlemi yoğun olabilir buna takılmayın. Burada yapılması gereken şey select işlemi akışını düzgün sağlamak veya stresliyse stresi azaltmaktır ama açıklamamda da belirttiğim gibi, select/insert işlemlerinin belki yükü azdır ama MySQL sunucusu optimizesiz olduğu için sunucu geç yanıt veriyordur ona göre bakarsınız artık. Bu konuda kararsızsanız veya bir şey bilmiyorsanız bu kısmı atlayın yani bir şey yapmayın.

    1. yöntem; her sorgu için update_post_term_cache, update_post_meta_cache ve cache_results gibi değerlerin false edilmesi yani durdurulması gerekir ki, sürekli select işlemi yaparak diski yormasın. Bunun için de tema ve eklentilerin yeniden elden geçirilmesi gerekir. Eklenti yok demişsiniz ama bu durumda tema ya da WordPress altyapısının incelenmesi gerekir.

    2. yöntem; Redis veya Memcached kullanarak bu sorguları belleğe alarak kullanmaktır. Redis kullanmanızı öneririm elbette ama sunucunuza, binen yüke, RAM miktarına ve sitenize göre konfigüre etmediğiniz sürece sunucuyu yorar ve sitenizi yavaşlatabilir, hatta daha da ağırlaştırabilir. İyi konfigüre edilmiş bir Redis çok verimli çalışır. Bu sayede ilgili sorgular sunucuyu fazla zorlamazlar. Ayrıca: Redis vs. Memcached karşılaştırmasını inceleyebilirsiniz.

    3. yöntem; ilgili eklentiyle veritabanını epey dizginleyebilirsiniz: https://tr.wordpress.org/plugins/ind...sql-for-speed/ ama unutmayın ki, ilgili 3 işlemin hepsi kritiktir ve uzmanlık gerektirir. Şayet bilginiz yoksa, fazla kurcalamanızı, hele hele veritabanıyla oynamanızı kesinlikle önermiyorum. Yine de denemeler yapmak isterseniz, en başta da dediğim gibi mutlaka yedek alın aksi halde sunucuyu ya da sitenizi riske atabilirsiniz. Tercih sizin.

    En güzel yöntem veritabanını (3.yöntemle değil) optimize etmek, Redis kullanarak sorguları belleklemek ama bunun için sunucunun size ait olması yani kısaca root yetkinizin olması gerekiyor.
  • 17-12-2022, 14:35:45
    #4
    phpxtr adlı üyeden alıntı: mesajı görüntüle
    Öncelikle bilgileriniz için teşekkürler. Sizin gibi açıklayıcı bilgiler paylaşan çok az kişi kaldı
    1- değerleri false yapmak için eklentilerin kodlarına müdahale mi etmemiz gerekiyor eğer durum böyleyse bu eklentileri kullanan herkes bu işlemi yapmak zorunda gibi anladım. Ve bu işlemi yaptığımda acaba ne kaybederim bu fonksiyon önemli bir işlev olabilir mi, false yapmamamız gerekebilir mi acaba. Ek olarak eklenti olarak rank-math, iletişim, litespeed cache kullanıyorum.
    2- Sunucuda memcached aktif ram kullanım değerlerim de şu şekilde: https://prnt.sc/QAQZCaqkiYtz
    3- Geçiçi çözüm olduğu için deneyemedim fakat bilgi için göz atıcam
    Evet herkes o işlemleri yapmak zorunda ama o işlemleri tek tek yapmak basit değil. Bunlar her tema ve eklentiyle alakalı da olmayabilir. Şöyle kısaca basit bir örnek vereyim.

    Diyelim ki, "benzer konular" eklentisi veya temanın benzer konular özelliğini kullanıyorsunuz. Bu tip eklenti veya tema özelliği, genelde şöyle başlar örneğin:

    $args = array(
             'post_type' => 'post',
              'cat' => '1,6,8',
              'author_name' => 'phpxtr',
              'posts_per_page' => 5,
              'fields' => 'ids'
              );
    $the_query = new WP_Query( $args );
    Burada 1, 6 ve 8 ID'li kategorilerden phpxtr isimli üyenin yazdığı 5 tane yazı çekiyor ama bu yapılırken meta verilerine bakılmaz. Bunu salt biçimde yapıp faaliyete alırlar. Zaten küçük çaplı siteler veya yeni başlayanlar için sorun olmaz. Büyük siteler sunucularını ona göre optimize ederse, yine pek sorun olmaz ama bundan anlayan birisi zamanla düzenlemeleri yapar. Az önceki sorgu değerleri aslında şöyle güncellenmeli yani:

    $args = array(
             'post_type' => 'post',
              'cat' => '1,6,8',
              'author_name' => 'phpxtr',
              'posts_per_page' => 5,
              'update_post_term_cache' => false, 
              'update_post_meta_cache' => false, 
              );
    $the_query = new WP_Query( $args );
    'update_post_term_cache' => false yapmak, kategori verilerini (meta register) alma demektir.

    'update_post_meta_cache' => false yapmak, post meta verilerini alma demektir.

    Bu sayede meta kayıtları artık devre dışı olduğu için select işlemlerini dizginlemiş olacaksınız.

    Litespeed eklentisini kaldırmanızı öneririm. Nginx sunucuda Litespeed eklentisi olmaz gereksiz ve boşuna yük.

    Memcached genelde aramalar için çok güzel oluyor ama Redis öyle bir seviyeye geldi ki, Memcached'i her kulvarda geçiyor artık. Tabii bu tartışmaya açık bir konudur. Halen Memcached kullananlar var hem de çok ciddi sayıda var ama benim önerim her zaman Redis kullanılmasından yanadır çünkü size gösterdiğim kaynakta da baktıysanız avantajları daha fazla.

    Size önerilerimi söyleyeyim.

    1- Mysqltuner ile MySQL sunucuyu kontrol edip inceleyin bakalım my.cnf yapılandarması nasıl? Başarılı mı? Size eksikleri söyleyecektir ona göre yapılandırma yaparsınız. MySQL için, şunlar şurada dursun okursunuz:
    https://www.r10.net/server-optimizas...post1081969213
    https://www.r10.net/server-optimizas...post1081974635

    2- Memcached kullanıyorsanız, iyi konfigüre edilmiş mi araştırın veya onu kaldırıp Redis kullanın ama unutmayın ki, her ikisinin de güzel konfigüre edilmesi gerekiyor.

    3- Nginx tek kullanıyorsanız, FastCGI Cache aktif edin ama unutmayın ki; sitenizde is_function tarzı değerler varsa çalışmaz çünkü FastCGI Cache sitenizi statik (HTML) siteye çevirir yani misafirlere statik sayfa sunar. Eh, böyle olduğu için özel tanımlanan is_mobile gibi sorgular devredışı kalır. Örneğin gece-gündüz teması vardır ve bu tema is_dark, is_light gibi komutlar varsa, statik belleklemede çalışmazlar. Bu konuyla ilgili detaylı açıklamayı şurada yapmıştım: https://www.r10.net/wordpress-sorunl...post1083813651

    4- Nginx yapılandırmanızı (conf) gözden geçirin bakalım ne denli işlevsel? Ne kadar RAM kullanıyor? gibi gibi. Basit bir önerim: https://www.r10.net/ucretli-wordpres...post1082028319

    Şimdi sitenize en azından şu an için birkaç şey yaparak stresi varsa biraz dizginleyelim.

    1- ÖNCE YEDEK ALIN

    2- Config dosyanızı açıp ekleyin:

    define('DISABLE_WP_CRON', true);
    Kaydedin.

    3- Şimdi şu eklentiyi kurun:
    https://wordpress.org/plugins/wp-crontrol/

    Kurulum sonrası panelden görevleri inceleyin ve sorunlu/zorlama yapan görevleri silin. Buna değinme sebebim aşırı giriş zorlaması sebebiyle cron görevleri kontrolden çıkarsa site çok zorlanır. Şimdi işlemler silme vs bittiyse, config dosyasını tekrar açın ve az önceki kodu şöyle değiştirin:

    define('DISABLE_WP_CRON', false);
    Kaydedin ve az önce kurduğunuz eklentiyi de kaldırın.

    Şimdi temanızın function dosyasını açın ve uygun bir yere ekleyin:

    add_filter( 'action_scheduler_run_schedule', function($arg) { return 86400; });
    
    add_filter( 'action_scheduler_pastdue_actions_check_pre', '__return_false' );
    
    add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
    function wpb_action_scheduler_purge()
    {
     return WEEK_IN_SECONDS;
    }
    Kaydedin.

    Şimdi veritabanın açın ve aşağıdaki sorguları sırayla çalıştırın:

    DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
    DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
    İşlemler bu kadar.

    Diğerlerini yapıp yapmamak da size kalmış.
  • 17-12-2022, 15:14:49
    #5
    Kurumsal Üye
    Pardon, sunucuda Litespeed kurulu mu yoksa sadece Litespeed Cache eklentisi mi kurulu sitede?

    Çünkü eğer sunucuda Litespeed kurulu ise Nginx pasif konuma getirilmesi gerekiyor. Yani Apache üzerinde Litespeed aktif olmalıdır.

    Sunucuda Litespeed kurulu değil ise zaten sitede mevcut olan Litespeed Cache eklentisinin bir faydası olmaz.

    Araya girdiğim için kusura bakmayın

    Kolay gelsin.
  • 17-12-2022, 15:24:10
    #6
    yilmaz70 adlı üyeden alıntı: mesajı görüntüle
    Pardon, sunucuda Litespeed kurulu mu yoksa sadece Litespeed Cache eklentisi mi kurulu sitede?

    Çünkü eğer sunucuda Litespeed kurulu ise Nginx pasif konuma getirilmesi gerekiyor. Yani Apache üzerinde Litespeed aktif olmalıdır.

    Sunucuda Litespeed kurulu değil ise zaten sitede mevcut olan Litespeed Cache eklentisinin bir faydası olmaz.

    Araya girdiğim için kusura bakmayın :)

    Kolay gelsin.
    Nginx kullanıyor yani Nginx sunucuda Litespeed eklentisi gereksiz. Dediğiniz gibi hiçbir faydası yok ve şu anda boşuna yük yapıyordur kesin. Onu derhal kaldırması gerekiyor. Hoş söyledim de zaten ama siz de iyi noktaya değinmişsiniz Yılmaz bey :) Litespeed eklentisi şu an gerçekten boşuna yük yapıyordur. Kısaca; sunucu Litespeed değilse, o eklenti gereksiz ve boşuna yük.
  • 17-12-2022, 15:29:27
    #7
    Kurumsal Üye
    EfendiBey adlı üyeden alıntı: mesajı görüntüle
    Nginx kullanıyor yani Nginx sunucuda Litespeed eklentisi gereksiz. Dediğiniz gibi hiçbir faydası yok ve şu anda boşuna yük yapıyordur kesin. Onu derhal kaldırması gerekiyor. Hoş söyledim de zaten ama siz de iyi noktaya değinmişsiniz Yılmaz bey Litespeed eklentisi şu an gerçekten boşuna yük yapıyordur. Kısaca; sunucu Litespeed değilse, o eklenti gereksiz ve boşuna yük.
    Bazen site sahiplerine vurgulamak gerekebiliyor çünkü kendilerini stres altında hissederken bazı ince hususları gözden kaçırabiliyorlar.

    Bu yüzden bir not eklemek istedim. Siz zaten gerekenleri izah etmişsiniz, emeğinize sağlık
  • 20-12-2022, 17:10:25
    #8
    Opcache eklentisini aktif etmiştim 0.22 saniyede açılıyor artık site sanırım memcache sorguları cachelemiyormuş bahsettiğiniz optimizasyon eksikliği olabilir. Biraz daha hızlandırma testleri için alttaki verdiğiniz örnekleri uygulamaya çalışacağım hocam teşekkür ediyorum. Bu arada wp-config ile WP Cronlarını önceden kapatmıştım. Fast CGI felan test etmek isterim aslında ama belirttiğiniz fonksiyonlar temada mevcut mu emin değilim o yüzden deneyemiyorum. Birde cPanel üzerinde nginx kurulu sanırım engintron olarak kurmuştu optimizasyon yapan arkadaş.

    EfendiBey adlı üyeden alıntı: mesajı görüntüle
    Evet herkes o işlemleri yapmak zorunda ama o işlemleri tek tek yapmak basit değil. Bunlar her tema ve eklentiyle alakalı da olmayabilir. Şöyle kısaca basit bir örnek vereyim.

    Diyelim ki, "benzer konular" eklentisi veya temanın benzer konular özelliğini kullanıyorsunuz. Bu tip eklenti veya tema özelliği, genelde şöyle başlar örneğin:

    $args = array(
             'post_type' => 'post',
              'cat' => '1,6,8',
              'author_name' => 'phpxtr',
              'posts_per_page' => 5,
              'fields' => 'ids'
              );
    $the_query = new WP_Query( $args );
    Burada 1, 6 ve 8 ID'li kategorilerden phpxtr isimli üyenin yazdığı 5 tane yazı çekiyor ama bu yapılırken meta verilerine bakılmaz. Bunu salt biçimde yapıp faaliyete alırlar. Zaten küçük çaplı siteler veya yeni başlayanlar için sorun olmaz. Büyük siteler sunucularını ona göre optimize ederse, yine pek sorun olmaz ama bundan anlayan birisi zamanla düzenlemeleri yapar. Az önceki sorgu değerleri aslında şöyle güncellenmeli yani:

    $args = array(
             'post_type' => 'post',
              'cat' => '1,6,8',
              'author_name' => 'phpxtr',
              'posts_per_page' => 5,
              'update_post_term_cache' => false,
              'update_post_meta_cache' => false,
              );
    $the_query = new WP_Query( $args );
    'update_post_term_cache' => false yapmak, kategori verilerini (meta register) alma demektir.

    'update_post_meta_cache' => false yapmak, post meta verilerini alma demektir.

    Bu sayede meta kayıtları artık devre dışı olduğu için select işlemlerini dizginlemiş olacaksınız.

    Litespeed eklentisini kaldırmanızı öneririm. Nginx sunucuda Litespeed eklentisi olmaz gereksiz ve boşuna yük.

    Memcached genelde aramalar için çok güzel oluyor ama Redis öyle bir seviyeye geldi ki, Memcached'i her kulvarda geçiyor artık. Tabii bu tartışmaya açık bir konudur. Halen Memcached kullananlar var hem de çok ciddi sayıda var ama benim önerim her zaman Redis kullanılmasından yanadır çünkü size gösterdiğim kaynakta da baktıysanız avantajları daha fazla.

    Size önerilerimi söyleyeyim.

    1- Mysqltuner ile MySQL sunucuyu kontrol edip inceleyin bakalım my.cnf yapılandarması nasıl? Başarılı mı? Size eksikleri söyleyecektir ona göre yapılandırma yaparsınız. MySQL için, şunlar şurada dursun okursunuz:
    https://www.r10.net/server-optimizas...post1081969213
    https://www.r10.net/server-optimizas...post1081974635

    2- Memcached kullanıyorsanız, iyi konfigüre edilmiş mi araştırın veya onu kaldırıp Redis kullanın ama unutmayın ki, her ikisinin de güzel konfigüre edilmesi gerekiyor.

    3- Nginx tek kullanıyorsanız, FastCGI Cache aktif edin ama unutmayın ki; sitenizde is_function tarzı değerler varsa çalışmaz çünkü FastCGI Cache sitenizi statik (HTML) siteye çevirir yani misafirlere statik sayfa sunar. Eh, böyle olduğu için özel tanımlanan is_mobile gibi sorgular devredışı kalır. Örneğin gece-gündüz teması vardır ve bu tema is_dark, is_light gibi komutlar varsa, statik belleklemede çalışmazlar. Bu konuyla ilgili detaylı açıklamayı şurada yapmıştım: https://www.r10.net/wordpress-sorunl...post1083813651

    4- Nginx yapılandırmanızı (conf) gözden geçirin bakalım ne denli işlevsel? Ne kadar RAM kullanıyor? gibi gibi. Basit bir önerim: https://www.r10.net/ucretli-wordpres...post1082028319

    Şimdi sitenize en azından şu an için birkaç şey yaparak stresi varsa biraz dizginleyelim.

    1- ÖNCE YEDEK ALIN

    2- Config dosyanızı açıp ekleyin:

    define('DISABLE_WP_CRON', true);
    Kaydedin.

    3- Şimdi şu eklentiyi kurun:
    https://wordpress.org/plugins/wp-crontrol/

    Kurulum sonrası panelden görevleri inceleyin ve sorunlu/zorlama yapan görevleri silin. Buna değinme sebebim aşırı giriş zorlaması sebebiyle cron görevleri kontrolden çıkarsa site çok zorlanır. Şimdi işlemler silme vs bittiyse, config dosyasını tekrar açın ve az önceki kodu şöyle değiştirin:

    define('DISABLE_WP_CRON', false);
    Kaydedin ve az önce kurduğunuz eklentiyi de kaldırın.

    Şimdi temanızın function dosyasını açın ve uygun bir yere ekleyin:

    add_filter( 'action_scheduler_run_schedule', function($arg) { return 86400; });
    
    add_filter( 'action_scheduler_pastdue_actions_check_pre', '__return_false' );
    
    add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
    function wpb_action_scheduler_purge()
    {
     return WEEK_IN_SECONDS;
    }
    Kaydedin.

    Şimdi veritabanın açın ve aşağıdaki sorguları sırayla çalıştırın:

    DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
    DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
    İşlemler bu kadar.

    Diğerlerini yapıp yapmamak da size kalmış.
  • 20-12-2022, 17:12:34
    #9
    Evet Litespeed cache eklentisini kullanmamam gerekiyor aslında fakat bazı özelliklerinden faydalanmak için kurmuştum değiştirmek biraz zor geldi açıkcası Litespeed lisans ücretleri yüzünden onu kurmayı düşünmedim hiç. Sizin önerdiğiniz bir eklenti var mı acaba güzel deneyimler edindiğiniz

    EfendiBey adlı üyeden alıntı: mesajı görüntüle
    Nginx kullanıyor yani Nginx sunucuda Litespeed eklentisi gereksiz. Dediğiniz gibi hiçbir faydası yok ve şu anda boşuna yük yapıyordur kesin. Onu derhal kaldırması gerekiyor. Hoş söyledim de zaten ama siz de iyi noktaya değinmişsiniz Yılmaz bey Litespeed eklentisi şu an gerçekten boşuna yük yapıyordur. Kısaca; sunucu Litespeed değilse, o eklenti gereksiz ve boşuna yük.
    yilmaz70 adlı üyeden alıntı: mesajı görüntüle
    Pardon, sunucuda Litespeed kurulu mu yoksa sadece Litespeed Cache eklentisi mi kurulu sitede?

    Çünkü eğer sunucuda Litespeed kurulu ise Nginx pasif konuma getirilmesi gerekiyor. Yani Apache üzerinde Litespeed aktif olmalıdır.

    Sunucuda Litespeed kurulu değil ise zaten sitede mevcut olan Litespeed Cache eklentisinin bir faydası olmaz.

    Araya girdiğim için kusura bakmayın

    Kolay gelsin.