Автор темы
#1
Linux Sunucu Performans Ayarları
Giriş ve bağlam
Bir Linux sunucusunun performansını optimize etmek, sadece donanımı yükseltmekten ibaret değildir. CPU, bellek, disk I/O ve ağ katmanını birden uyumlu çalışacak şekilde konumlandırmak gerekir. Bu yazı, tipik bir üretim sunucusunda teker teker ele alabileceğiniz ayarları, darboğazları belirleme yöntemleriyle birlikte somut ve uygulanabilir biçimde sunar. Deneyimsel olarak uygulanabilir adımlarla ilerleyeceğim.
1) İş yükünü anlamak ve izlemek
2) CPU ve çekirdek kullanımı
3) Bellek ve swap yönetimi
4) Disk I/O ve depolama
5) Ağ performansı ve TCP tuning
6) Güncelleme ve güvenlik dengesi
Sonuç ve kapanış
Bu yönerge, tipik bir üretim Linux sunucusunda adım adım ölçeklenebilirlik ve yanıt süresi iyileştirme amacıyla tasarlandı. Her adımı kendi ortama uygularken, gerçekte hangi darboğazın hangi katmanda ortaya çıktığını görmek için ölçüm ve doğrulama adımlarını atlamayın. Bu alanda deneyimlerinizi ve karşılaştığınız tipik senaryoları paylaşmak, benzer yük altındaki sistemlerin daha hızlı stabil hale gelmesini sağlar.
Giriş ve bağlam
Bir Linux sunucusunun performansını optimize etmek, sadece donanımı yükseltmekten ibaret değildir. CPU, bellek, disk I/O ve ağ katmanını birden uyumlu çalışacak şekilde konumlandırmak gerekir. Bu yazı, tipik bir üretim sunucusunda teker teker ele alabileceğiniz ayarları, darboğazları belirleme yöntemleriyle birlikte somut ve uygulanabilir biçimde sunar. Deneyimsel olarak uygulanabilir adımlarla ilerleyeceğim.
1) İş yükünü anlamak ve izlemek
- Araç seti: top, htop, iostat, iostat -dx, vmstat, sar, pidstat, netstat veya ss. Özellikle disk I/O ve ağ gecikmesini gösteren istatistikler, nerede değişiklik yapmanız gerektiğini gösterir.
- Kaynak odaklı hedefler:CACHE/Swap davranışı, CPU kullanıcı modu yükü ve çekirdek başına eşleşen iş yoğunluğu. Uzun vadeli hedef, ortalama yanıt süresinin stabil kalması ve bekleyen işlerin minimumda olmasıdır.
2) CPU ve çekirdek kullanımı
- cpuset veya cgroups ile izole iş yükleri oluşturarak contention’ı azaltın. Örneğin, dedike bir iş kümesini belirli çekirdek kümelerine bağlayın.
- Linux scheduler davranışı: çok çekirdekli sistemlerde CFS ayarlarını dengelemek için swappiness gibi parametreler üzerinde ince ayar yapabilirsiniz. Özellikle düşük gecikmeli hizmetler için nicel hedefler belirlemek faydalı olur.
- Kernel parametreleri: /proc/sys/kernel/perf_event_paranoid ve perf ile performans analizlerini tetiklemek. Ancak üretimde kararlaştırılan güvenlik politikalarını zedeleyecek değişikliklerden kaçının.
3) Bellek ve swap yönetimi
- Swap kullanımını sınırlamak veya tamamen kapatmak yerine, swappiness değerini kademeli olarak ayarlayın. Genelde 10–20 arası başlangıç seviyesi güvenli bir noktadır.
- RAM başına bellek ayırtlarını yapılandırmak, önbellek/miş gibi katmanlarda daralmanın etkisini azaltır. Zaman içinde bellek sızıntılarını izlemek için uzun vadeli grafikler kurun.
4) Disk I/O ve depolama
- I/O scheduler’ı seçimi: sunucu iş yüküne göre deadline veya noop gibi tamponlama odaklı scheduler’lar çoğu durumda sağlar. Veritabanı yoğunluğu varsa CFQ gibi seçenekleri karşılaştırın.
- EBS/SSD veya RAID konfigürasyonlarında параллelleştirme ve yazma tamponları kritik rol oynar. I/O latency hedeflerini ölçerek sıralamayı buna göre yapın.
- Yazma önceliği: veritabanı veya dosya sunucularında, arka planda yoğun yazıyı bastırma stratejileri ile yanıt süresini dengeleyin.
5) Ağ performansı ve TCP tuning
- sysctl ile TCP davranışını ince ayarlayın: bağlantı noktası açma, af-vol olan zaman aşımı gibi değerler, yoğun trafik altında ağ gecikmesini düşürebilir.
- UDP/TCP optimizasyonları: MTU, GSO/TSO gibi teknolojileri incelemek ve donanım destekli ağ özelliklerini etkinleştirmek önemli olabilir.
6) Güncelleme ve güvenlik dengesi
- Güvenlik yamalarının performansı etkilemesini önlemek için güncellemeleri dikkatli planlayın. Sunucu yükü ve güvenlik gereksinimleri arasındaki dengeyi kurun.
- İzleme ve otomatik uyarı: belirli eşiklerin aşılması durumunda uyarı veren bir sistem kurun; bu, müdahale hızını artırır ve performans güvenliğini sağlar.
Sonuç ve kapanış
Bu yönerge, tipik bir üretim Linux sunucusunda adım adım ölçeklenebilirlik ve yanıt süresi iyileştirme amacıyla tasarlandı. Her adımı kendi ortama uygularken, gerçekte hangi darboğazın hangi katmanda ortaya çıktığını görmek için ölçüm ve doğrulama adımlarını atlamayın. Bu alanda deneyimlerinizi ve karşılaştığınız tipik senaryoları paylaşmak, benzer yük altındaki sistemlerin daha hızlı stabil hale gelmesini sağlar.
