Digitalocean VPS kullananlar, WordPress üzerinde veritabanı bağlantı kurma hatasını tecrübe etmişlerdir. Uzun zamandır yaşadığım bir sorun olmasına rağmen SWAP özelliği dışında tam bir çözümünü bulamadım, ancak bazı önlemler alınabilir.
WordPress’te veritabanı bağlantı kurma hatasının kaynağı MySql için yetersiz bellektir. Digital Ocean, 1GB Ram / 1 CPU özellikli en düşük configürasyon VPS’de daha sık yaşanır. Özellikle otomatik WordPress güncellemeleri ve bazı zararlı botlar bu soruna neden olur. Elbette Ddoss attack vs. de siteye bu hatayı verdirebilir.
Sorunun çözümü, yani MySql bağlantısını normal hale getirmek basittir, (Konsoldan “reboot” komutu ya da Digital Ocean panelinden ilgili droplet’i açıp kapatın sorun %100 çözülür.) Bu makalede, sorunu hiç yaşamamak veya daha az karşılaşmak için alınabilecek önlemlerden bahsedeceğiz.
işletim sistemini ya da MySql’i yeniden başlatmanız sorunu çözer, ama web sitenizde bu sorunun yaşandığını farkedebilmeniz gerekir.
Sorunun daha az veya hiç yaşanmaması için önlemler
- SWAP özelliğini kurun. SWAP bellek özelliğini kurmak SSD sunucularda sabit disk hatalarına neden olduğu için önerilmez) Swap bellek özelliğini kurmak istemiyorsanız aşağıdaki seçenekleri deneyebilirsiniz.
- WordPress için en az 2 GB Ram ve 2 CPU konfigürasyona geçin, bu konfigürasyonda sorun çok nadir yaşanır. Dedicated CPU & Ram sunucularda hiç yaşanmaz. En iyi çözümdür.
- WordPress otomatik güncellemeleri kapatın. Bu, verimli bir çözüm değildir, ancak hata daha nadir görülür.
- Sitenizin belirli arama motorları dışında taranmasına izin vermeyin. Bunu robots.txt dosyanıza yazacağınız direktiflerle yapabilirsiniz. Ancak robots.txt dosyası illa tarayacağım diyen bir botu engelleyemez. Bu durumda “All in One Security” WordPress eklentisinin sahte botları engelleyen özelliğini aktif edebilirsiniz.
- Sunucunuzu günün belirli saatlerde yeniden yeniden başlatmak için Cron Job özelliğini kurabilirsiniz, ancak bu da verimli bir çözüm değildir, siteniz yeniden başlatma vakti gelene kadar kapalı kalır.
- Monitör. Uptime monitor 50 siteye kadar ücretsiz destek verir. Sunucu çalışma süresini 5 dk’da bir kontrol eder ve web sitenizin kapanması durumunda sizi uyarır.
Sorun en çok WordPress admin panelinde yaşanır. Web sitesi çalıştığı halde admin paneli mysql hatası verebilir (wp-admin). UpTime Monitor’ü admin panelinin adresini kontrol edecek şekilde ayarlamanız önemlidir.
Ubuntu 18 SWAP Kurulumu
Swap özelliği sunucu bellek yetersizliği durumlarında yanıt verebilirliğini artırır. Swap genellikle standart sabit disk kullanan sistemler için önerilir. SSD’lerle takas kullanmak, zaman içinde donanımın bozulması gibi sorunlara neden olabilir. Bu nedenle önerilmez.
SWAP nedir?
SWAP, sabit diskte verilerin geçici olarak depolanabilmesi için belirlenmiş bir alandır. Temel olarak sunucunun bellek miktarını (RAM) artırma yeteneği sağlar.
Sabit sürücüdeki SWAP alanı RAM’de yeterli alan kalmadığında kullanılır. Diske yazılan bilgiler, RAM’de tutulan bilgilerden önemli ölçüde daha yavaş olacaktır, ancak işletim sistemi uygulama verilerini bellekte çalıştırmayı ve eski veriler için SWAP kullanmayı tercih edecektir.
SWAP Kurulum
Sistemde SWAP yüklü olup olmadığını kontrol edin.
sudo swapon --show
Herhangi bir çıktı alamazsanız sisteminizde şu anda kullanılabilir SWAP alanı olmadığı anlamına gelir. “Free -h” komutunu kullanarak tekrar doğrulayabilirsiniz.
free -h
root@yilmazsarac:~# free -h
total used free shared buff/cache available
Mem: 985M 599M 100M 1.0M 284M 244M
Swap: 0B 0B 0B
SWAP dosyasını oluşturacağınız bölümü kontrol edin. (/dev/vda1)
df -h
root@yilmazsarac:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 480M 0 480M 0% /dev
tmpfs 99M 612K 98M 1% /run
/dev/vda1 25G 4.5G 20G 19% /
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/vda15 105M 3.6M 101M 4% /boot/efi
tmpfs 99M 0 99M 0% /run/user/0
SWAP alanının ne kadar olması gerektiğine dair birçok görüş vardır. Genellikle RAM’inize eşit veya 2 katı tavsiye edilir. 1 GB RAM ve 1 CPU kullanıyorsanız bence 1 GB SWAP daha uygundur.
SWAP dosyasını oluşturun.
sudo fallocate -l 1G /swapfile
Doğru büyüklükte alan ayrıldığını doğrulayın.
ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G Agu o6 22:24 /swapfile
SWAP dosyasının güvenliğini sağlayın, root erişilebilirliği verin.
sudo chmod 600 /swapfile
Aşağıdakileri yazarak izin değişikliğini doğrulayın
ls -lh /swapfile
Output-rw------- 1 root root 1.0G Agu 06 22:25 /swapfile
Root kullanıcısına ve root grubuna erişim verilmiş oldu.
Oluşturulan dosyayı SWAP alanı olarak belirleyin.
sudo mkswap /swapfile
Output
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e9665-2ab9-450f-aed6-577e74089dbf
SWAP dosyasını etkinleştirin.
sudo swapon /swapfile
SWAP dosyasının kullanılabilir olduğınu doğrulayın.
sudo swapon --show
Output
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -1
Diski tekrar kontrol edin
free -h
Output total used free shared buff/cache available
Mem: 1G 37M 96M 652K 354M 425M
Swap: 1.0G 0B 1.0G
Dosyanın yedeğini alın, kalıcı hale getirin çünkü sunucu yeniden başatıldığında ayarlar kaybolur.
sudo cp /etc/fstab /etc/fstab.bak
SWAP dosyası bilgilerini dosyanın sonuna /etc/fstabyazarak ekleyebilirsiniz
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Swap özelliğini ayarladınız.
Sunucunuza SWAP özelliği ekleyerek yetersiz bellek istisnalarına yol açabilecek durumlarla baş etmenizi sağlar. SWAP özelliği yetersiz bellek sorunlarına çözüm olabilir, ancak WordPress üzerinde veritabanı bağlantı sorunu hatalarıyla karşılaşıyorsanız en iyi çözüm WordPress yapılandırmalarınızı optimize etmek veya sunucunuzun konfigürasyonunu yükseltmektir.
