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.
centos 7, 2 GB RAM. mailserver pasif, antispam vs. pasif yaptım. yukarıda verdiğiniz optimizasyonları yaptım. sadece ortalama 30 kullanıcılı bir sistem var. lakin geceleri o da yok ve bu durumda bile RAM kullanımı %80 civarında. ram in bu durumu normal mi?
vesta panelde maridb nedenini tespit edemediğim bir şekilde(vesta panelin kronik sorunu olduğu ifade ediliyor bazı makalelerde) duruyor(çöküyor). her defasında yeniden başlatmak gerekiyor. Bu konuda bir tecrübeniz var mı?
Bire bir aynı problemi yaşamadım fakat Vesta kurduktan sonra ben üstünde kurulu PHP olsun MariaDB olsun hepsini güncelliyorum. En güncel sürüm neyse onu kullanıyorum sanırım bu yüzden hiç sorun yaşamadım. Size de bu yönde ilerlemenizi tavsiye ederim. Kolay gelsin.
centos 7, 2 GB RAM. mailserver pasif, antispam vs. pasif yaptım. yukarıda verdiğiniz optimizasyonları yaptım. sadece ortalama 30 kullanıcılı bir sistem var. lakin geceleri o da yok ve bu durumda bile RAM kullanımı %80 civarında. ram in bu durumu normal mi?
Merhaba, yüksek aslında. Bu ayarlarla öyle olması çok şaşırtıcı. SSH bağlantısı yaptıktan sonra top komutunun ekran görüntüsünü gönderebilir misiniz?
ayrıca sunucu yönetim konsolunda görünen de şu:
https://uploads.disquscdn.com/images/9cd18b909cf3299a2b7f153ae2f93ed3c508ecd014306fddcf16b983add4080a.png
https://uploads.disquscdn.com/images/133826787cd5b9428e4345eb687ef3aebcbc3c62424f7ddb697dd8cf8547b804.png
Merhaba,
Used (322 MB) kısmını dikkate alabilirsiniz. Bende de benzer görüntü var mesela. Fakat NetData’da asıl kullanılan miktar görünüyor. Sorun yok yani 🙂
https://uploads.disquscdn.com/images/d72c608d2e563d40a7365d2de938f1b191b1911870e34450c5945f384942868c.jpg
vesta panelde maridb nedenini tespit edemediğim bir şekilde(vesta panelin kronik sorunu olduğu ifade ediliyor bazı makalelerde) duruyor(çöküyor). her defasında yeniden başlatmak gerekiyor. Bu konuda bir tecrübeniz var mı?
Merhaba,
Bire bir aynı problemi yaşamadım fakat Vesta kurduktan sonra ben üstünde kurulu PHP olsun MariaDB olsun hepsini güncelliyorum. En güncel sürüm neyse onu kullanıyorum sanırım bu yüzden hiç sorun yaşamadım. Size de bu yönde ilerlemenizi tavsiye ederim. Kolay gelsin.