• 05-02-2010, 14:08:16
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Sitem özellikle akşam saatlerinde yavaşlıyor. Yavaşladığı an SSH girişi yapıp mytop komutunu çalıştırıyorum.

    Alıntı
    Id - User - Host/IP - DB - Time - Cmd - Query or State
    4461 database_user localhost database_user 34 Query INSERT INTO visitors ( visitor_ip, visitor_browser, visitor_lastactive, visitor_invisible,
    4453 database_user localhost database_user 44 Query INSERT INTO visitors ( visitor_ip, visitor_browser, visitor_lastactive, visitor_invisible,
    4452 database_user localhost database_user 48 Query INSERT INTO visitors ( visitor_ip, visitor_browser, visitor_lastactive, visitor_invisible,
    4449 database_user localhost database_user 50 Query INSERT INTO visitors ( visitor_ip, visitor_browser, visitor_lastactive, visitor_invisible,
    Bu şekilde sorgular görünüyor ve uzun bir süre bekliyorlar. Bu bekleme bazen 300 saniyelere kadar çıkıyor. Fakat VPS'teki diğer siteler sorunsuz bir şekilde açılıyorlar.

    Bu sorunu cache sistemi kullanarak aşabileceğimi düşündüm. Ama cache sistemleri hakkında en ufak bir bilgim yok.

    Memcached ve XCache araştırıyorum şu an.. Memcached'i MySQL için, XCache'i ise PHP için tavsiye ettiklerini gördüm. Sanırım bu MySQL sorgu bekleme sırasını Memcached ile giderebilirim.

    VPS özellikleri : Intel(R) Xeon(R) CPU X3363 @ 2.83GHz, 1.5 GB ram, CentOS, cPanel.. Genelde 900 MB ram boşta duruyor..

    Bu özellikteki bir VPS için cache sistemi ne kadar fayda sağlar ? Ya da başka bir tavsiyesi olan var mı ?
  • 05-02-2010, 14:37:00
    #2
    bunun yerine mysql için "long_query_time" değerini 3 yapıp 3 saniyeden uzun süren sorgularıda "log_slow_queries" ile kaydetseniz tadından yenmez

    xcache ioncube ve zendli dosyalarda sorun çıkarabilir. yerine Eaccelerator tavsiye ederim. mamcached ve eaccelerator'u cpanelden apache derlerken seçip kurabilirsiniz.
  • 05-02-2010, 14:46:59
    #3
    Slow query olayını yaptım, hemen INSERT INTO sorguları kaydedilmiş.

    Apache'yi tekrar derlemek istemiyorum. VPS'te FFmpeg bulunduğu için zamanında ayarlarını biraz zor yapmıştım, sorun çıkmıştı.

    O zaman şu an Memcached ve eAccelerator kurup load değerlerini izlemeye başlayayım.
  • 05-02-2010, 15:02:52
    #4
    mysql ayarı için ssh dan bağlandıktan sonra sırayla aşağıdaki komutları uygulayın

    Alıntı
    touch /var/log/mysqld.slow.log
    nano /etc/my.cnf
    log_slow_queries=/var/log/mysqld.slow.log
    long_query_time=1
    Ctrl + X
    y enter
    service /sbin/mysqld restart
    eaccelerator kurmak için sisteminize uygun sürümünü http://eaccelerator.net/ adresinden indirin, sıkıştırılmış dosyayı açıp ilgili klasöre girdikten sonra sırayla aşağıdaki komutları kullanarak kurabilirsiniz

    Alıntı
    phpize
    ./configure
    make
    make install
    "phpize: command not found" diye bir hata alırsanız php-devel paketini kurmanız lazım, "yum install php-devel" komutu ile kurabilirsiniz

    eaccelerator.so dosyanızın yüklendiği klasörü make install yaptığınızda yazacaktır. bu dosyanın tam yolunu php.ini ye yazmanız lazım.

    Alıntı
    php -i | grep php.ini
    komutu ile php.ini yerini tespit edip, nano ile açın. Ctrl + W basarak arama ekranına geçin ve zend_extension yazıp arattıktan sonra aşağıdakileri zend altına ekleyin

    Alıntı
    zend_extension="/usr/lib/php4/eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/tmp/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
    http restart ettikten sonra ssh dan php -v komutu ile kontrol edebilirsiniz. Aşağıdaki gibi çıktı vermesi lazım

    Alıntı
    PHP 5.2.12 (cli) (built: Jan 29 2010 02:31:40)
    Copyright (c) 1997-2009 The PHP Group
    Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
    with the ionCube PHP Loader v3.3.7, Copyright (c) 2002-2009, by ionCube Ltd., and
    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies
    memcache yi hiç kendim kurmadım yanlış yönlendirmek istemem, netten kurulumu ile bilgi bulabilirsiniz.
  • 05-02-2010, 17:57:23
    #5
    mow
    Üyeliği durduruldu
    Tablonuzu "optimize" etmeyi deneyebilirsiniz. Ayrıca gördüğüm kadarıyla içindeki veri anlık bir veri, arada sırada tabloyu boşaltmakta bir sakınca yok gibi gözüküyor.
  • 06-02-2010, 03:49:52
    #6
    @victories, yardımın için teşekkürler. Memcached de kurdum, uzun süren sorgunun kaydedilen 2 değişkenini de kaldırdım hatta.. Fakat günün belirli saatlerinde INSERT INTO sorgusunun sonuçlanması çok uzun sürüyor.

    @mow, tablo belirli zaman aralıklarında kendisini boşaltıyor.

    Yaşadığım sorunu VPS sağlayıcıma ilettim. Eğer yanılmıyorsam, sunucuda bulunan diğer VPS hesapları benim VPS hesabımı etkiliyor. Çünkü site yavaşladığı zamanlar CPU load oranı yükseliyor (1-3 arası) ve haliyle MySQL sorgusu uzun sürüyor diye düşünüyorum.