Sözde Linux sunucu çekirdeği parametresi optimizasyonu (Apache, Nginx, Squid vb. Gibi çeşitli web uygulamaları için uygundur, özel işlerin biraz ayarlanması gerekebilir), esas olarak Linux sistemindeki iş hizmeti uygulamaları için sistem çekirdeği parametre ayarlaması ve optimizasyonunu ifade eder. Belli bir standart yok.
Aşağıda, çekirdek optimizasyonuna iki bölümlük bir giriş yer almaktadır. İlk bölüm esas olarak çekirdek yapılandırma dosyası hakkında konuşmaktadır. İhtiyaçlarınıza göre bir seçim yapabilirsiniz. İkinci bölüm, yalnızca referans olarak, yüksek basınç ölçümü eşzamanlılığı sırasında sıklıkla yaptığım bazı çekirdek optimizasyonlarıdır.
1. tcp soketleri açısından
# FIN-WAIT-2 durumunda süreyi koruyun, böylece sistem daha fazla bağlantıyı idare edebilir. Bu parametrenin değeri bir tam sayıdır ve birimi saniyedir.
net.ipv4.tcp_fin_timeout = 2# Yeniden kullanımı etkinleştirin, TIME_WAIT soketinin yeni TCP bağlantıları için kullanılmasına izin verin. Varsayılan 0'dır, bu da kapalı anlamına gelir.
net.ipv4.tcp_tw_reuse = 1# TCP bağlantısında TIME_WAIT soketinin hızlı kurtarılmasını etkinleştirin. Varsayılan değer 0'dır, bu da kapalı olduğu anlamına gelir.
net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syn_retries = 1# SYN tanımlama bilgisini etkinleştirin ve az sayıda SYN saldırısını önlemek için SYN bekleme kuyruğu taştığında tanımlama bilgisi işlemeyi etkinleştirin. Varsayılan 0'dır, bu da kapalı anlamına gelir.
net.ipv4.tcp_syncookies = 1# 1024'e önceden ayarlanmış SYN kuyruğunun uzunluğunu gösterir. Burada, daha fazla bekleyen bağlantı için kuyruk uzunluğu 262144'e ayarlanmıştır.
net.ipv4.tcp_max_syn_backlog = 262144# Sistem aynı anda maksimum TIME_WAIT soket sayısını tutar.Bu sayı aşılırsa hemen silinir ve bir uyarı mesajı verilir. Varsayılan değer 180000'dür. Squid için efekt çok iyi değil, ancak TIME_WAIT soketinin maksimum değeri, squid sunucusunun sürüklenmesini önlemek için kontrol edilebilir.
net.ipv4.tcp_max_tw_buckets = 5000# Sistemdeki herhangi bir kullanıcı dosyası tanıtıcısı ile ilişkilendirilmemiş maksimum TCP soket sayısını gösterir. Burada ayarlanan sayı aşılırsa, bağlantı sıfırlanacak ve bir uyarı mesajı çıkacaktır. Bu kısıtlama yalnızca basit DoS saldırılarını önlemek içindir. Bu değer çok küçük olamaz.
net.ipv4.tcp_max_orphans = 16384# TCP maksimum arabellek boyutunu artırın
net.ipv4.tcp_rmem = 4096873804194304 net.ipv4.tcp_wmem = 40961638441943042. Kalıcı yön
#keepalived Etkinleştirildiğinde TCP tarafından gönderilen tutulan iletilerin yazımı. Varsayılan 2 saattir.
net.ipv4.tcp_keepalive_time = 600#TCP, bağlantının kaç kez kesildiğini belirlemek için canlı tutma araştırmaları gönderir. Bu değer duruma göre uygun şekilde kısaltılabilir.
net.ipv4.tcp_keepalive_probes = 5# Yoklama mesajlarının gönderilme sıklığı, yoklama başladığından beri yanıt vermeyen bağlantıları sonlandırma zamanını almak için tcp_keepalive_probes ile çarpılır. Varsayılan değer 75 saniyedir; bu, yaklaşık 11 dakika sonra hiçbir etkin bağlantının kesilmeyeceği anlamına gelir. Sıradan uygulamalar için bu değer biraz fazla büyüktür ve gerektiğinde azaltılabilir, özellikle web sunucuları için bu değerin azaltılması gerekmektedir.
net.ipv4.tcp_keepalive_intvl = 153. Bağlantı Noktaları
# Harici bağlantılar için bağlantı noktası aralığını belirtin. Varsayılan değer 3276861000'dir.
net.ipv4.ip_local_port_range = 102465000# Sistemdeki her bağlantı noktasının maksimum dinleme kuyruğu uzunluğunu tanımlar.Yeni bağlantıları sık sık işleyen yüksek yüklü bir web hizmeti ortamı için varsayılan değer 128'dir ve bu çok küçüktür.
net.core.somaxconn = 16384# Her ağ arayüzünde veri paketlerini alma hızı, çekirdeğin bu paketleri işleme hızından daha yüksek olduğunda kuyruğa gönderilmesine izin verilen maksimum veri paketi sayısını gösterir.
net.core.netdev_max_backlog = 16384# Güçlendirme saldırılarından kaçının
net.ipv4.icmp_echo_ignore_broadcasts = 1Not: Değişiklik yürürlüğe girer
vi /etc/sysctl.conf
Yapılandırma, uygun parametreler eklendikten sonra yürürlüğe girer
sysctl -p# Beklemeye izin verin, sistemdeki maksimum soket bağlantısı sayısını ayarlayın
echo 50000 > / proc / sys / net / core / somaxconn#tcpconnection hızlı kurtarma: 0-tcp kurtarmayı hızlandırmayın 1-tcp kurtarmayı hızlandırın
yankı 1 > / proc / sys / net / ipv4 / tcp_tw_recycle# tcp bağlantısının yeniden kullanımı: 0- boş tcp geri dönüşümünü etkinleştirmeyin 1- boş tcp geri dönüşümü
yankı 1 > / proc / sys / net / ipv4 / tcp_tw_reuse# Sel saldırısına direnmeyin: 0-Sel saldırı direncini kaldırın 1-Sel saldırısı direncini etkinleştirin
yankı 0 > / proc / sys / net / ipv4 / tcp_syncookies# Sistemdeki maksimum dosya erişimi sayısını ayarlayın
echo "ulimit -n 50000" > > / etc / profile kaynak / etc / profil# Maksimum kullanıcı işlemi sayısını ayarlayın
vi /etc/security/limits.conf
oracle soft nproc 16384 oracle sert nproc 16384İşte bu kadar Linux çekirdeğinin optimizasyonu için.İhtiyaçlarınıza göre seçimler yapabilirsiniz.Özellikle sistem yüksek eşzamanlılık hizmetlerine sahip olduğunda optimizasyonu uygun şekilde yapmayı düşünebilirsiniz.
Optimizasyon sistemi hakkında daha sonra daha fazlasını paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir! !