Sunucu optimizasyonu zor, uzun süren ve baş ağrıtıcı bir olaydır. 2 yıldır kullandığım sunucumu optimize etmekten artık yorulmuş durumdayım. Hala da acaba daha iyi olabilir mi diyerek yeni şeyler deniyorum. Bu denediklerimi de sizlerle paylaşmak istiyorum. Buraya paylaştıklarım hem sizlere hem de bana faydalı olacak diye düşünüyorum. Çok uzatmadan uyguladığım yöntemleri ve kaynakları paylaşayım. Ayrıca sizlerle Apache, MySQL (Benim için MariaDB ama fark etmez.) ve NGINX ayarlarımı da paylaşacağım. Hemen aşağıdaki VPS Kurulumu konusunda Türkiye’de ilk sırada çıkan ilgili yazımı da kesinlikle okumalısınız. Bu yazımda yaşadıklarımı bir günlük gibi de tutmaktayım.
Servisler üzerindeki dosyaların/verilerin optimizasyonu (Veritabanı, WordPress ya da özel yazılım siteler, scriptler vb.)
Optimizasyonu tam anlamıyla gerçekleştirmek için üç adıma da sağlam bir şekilde dokunmak gerekiyor. Ben bu yazımda ağırlıklı olarak 2. adımdaki servislere değindim. Diğer adımların optimizasyonlarına yukarıdaki söz konusu başlıklara tıklayarak ulaşabilirsiniz.
Not: Yazılarım biraz karışık ilerliyor sanki biliyorum ama düzeltmek için de bir çözümüm yok 🙂 zaten bu olaylar kendiliğinden karışık. Kurcalaya kurcalaya öğrenmek gerekiyor. Çok iyi bir anlatıcı da değilim bu arada kusura bakmayın 🙁
VPS Sunucu Sistemi ve Özellikleri
Öncelikle işletim sistemim CentOS 7 bunu belirteyim. Bu uyguladığım ayarlar 1 GB RAM ve 1 çekirdek CPU’ya sahip VPS’ler için uygundur. Daha yüksek RAM’e sahip sunucularda Apache ayarlarını arttırabiliriz. Hangi kısmı arttırabileceğinizi daha sonra detaylandıracağım burada. Yine de tabi siz aşağıdaki apache2buddy aracı ile arttırmanız gereken alanları görebilirsiniz.
Apache
apache2buddy
apache2buddy scripti sunucuda yüklü olan Apache sunucusunun pek çok alanına bakarak size optimizasyon önerileri sunar. Baktığı alanları özetlersem;
PHP RAM limitleri
Memcache
MaxClients
RAM kullanımı
Potansiyel maksimum RAM kullanımı
Toplam RAM’in yüzde kaçının Apache’ye ayrıldığı
MaxRequestWorkers
Bu aracın yukarıdakilere bakarak önerdiği ayarları gerçekleştirdiğimizde de sunucunun ciddi olarak hızlandığını hissedebiliyoruz.
Aracı aşağıdaki komut ile PuTTY aracıyla sunucuya bağlanarak kullanabiliriz.
Ben MySQL optimizasyonu için birçok makale okudum. Fakat aşağıda paylaşacağım aracı kullanmanızı tavsiye ederim. Bu araç MySQL ayarlarınızı ve kullanım istatistiklerinizi tarayarak size tavsiyeler veriyor. Bu tavsiyelere uyarak veritabanı sunucunuzu güzel bir şekilde optimize edebilirsiniz. Tabi her önerdiği ayara da uymayın. Sonuçta VPS’lerinizin RAM miktarı kısıtlı.
MySQLTuner
MySQLTuner scripti de aynı apache2buddy scripti gibi bu sefer veritabanı sunucunuzun pek çok alanına bakarak size optimizasyon önerileri sunar. Bu aracı aşağıdaki şekilde kullanabilirsiniz. Size muhtemelen 1. seçenek uyacaktır.
Kısaca 3. adımdaki veritabanı optimizasyonundan da bahsedersem ben veritabanı optimizasyonunu WP-Optimize eklentisi ile gerçekleştiriyorum. Bunu da daha sonra detaylandırırız.
Sonuç
Sonuç olarak benim verdiğim ayarları kullandığınızda tam anlamıyla optimize bir sisteme sahip olacaksınız. Sistem gayet hızlı çalışacak. Bu yazıyı da sürekli güncel tutup daha da dallandırmayı düşünüyorum. Takipte kalın! Teşekkürler 🙂
Ayrıca bu optimizasyon ile birlikte aşağıdaki yazımı da uygulamanızı tavsiye ederim. Ayarları tam olarak 1 GB RAM’li sisteme göre yaptığımız için swap kısmına çok ihtiyacımız olmayacak. Swap yapacağız fakat aşırı değil. %100’e çok yaklaştığında sistem swap yapacak. Bu yüzden aşağıdaki gibi uygulayın ayarları.
Önemli Not
Evet biliyorum yazım hatta tüm yazılarım karışık. Fakat benim bunları öğrenmem (Ki tam öğrenebildiğim söylenemez. Sonu yok bu işin.) 2 senemi aldı. Bu 2 sene içinde sunucumu onlarca kez baştan kurdum. Bozdum, bozdum, düzelttim. Belki 1000’den fazla makale okudum. Bu yazı ve Baştan Sona VPS Kurulumu yazımı oluşturmam kolay olmadı. Bu yüzden en azından bu yazım ağır geliyorsa (Ağır derken anlayamadığınız yerleri tek tek Google’da araştırmanız lazım. Her şeyi burada anlatmadım ben.) direk 3 adet config dosyamı (Apache, MySQL ve NGINX) alın ve kullanın sorgulamadan. Sunucunuz benim sunucum gibiyse (Vesta Panel kullanıyorum bu yüzden sadece gerekli yerleri almanız gerekebilir.) direk kullanın geçin.