Linux sisteminin varsayılan işletim sistemi parametreleri iş yükü gereksinimlerinizi karşılamıyorsa sistem performansını iyileştirmek için düğüm havuzu düzeyinde işletim sistemi ayarlarını özelleştirebilirsiniz. Özel parametreleri uyguladıktan sonra sistem düğüm yapılandırmalarını toplu işler halinde günceller. Bu değişiklikler mevcut düğümlere anında uygulanır ve havuza eklenen yeni düğümler tarafından otomatik olarak devralınır.
Kullanım notları
Bu özellik yalnızca 1,28 veya sonraki bir sürümü çalıştıran ACK yönetilen kümeler, ACK özel kümeler ve ACK Edge kümeleri üzerinde desteklenir.
Yeni ACK özel küme oluşturma artık desteklenmemektedir. Kümenizi yükseltmek için bkz. Küme yükseltme .
İşletim sistemi parametrelerini dinamik olarak değiştirmek Pod yeniden dağıtımını tetikleyebilir. İşleme devam etmeden önce uygulamanızın yüksek kullanılabilirlik (HA) için yapılandırıldığından emin olun.
İşletim sistemi parametrelerini hatalı şekilde ayarlamak çekirdek davranışını değiştirerek performans düşüşüne veya hizmetlerinizi etkileyen düğüm arızalarına yol açabilir. Her bir parametrenin amacını tam olarak kavrayın ve üretim ortamına uygulamadan önce tüm değişiklikleri üretim dışı bir ortamda test edin.
Düğüm havuzu işletim sistemi parametrelerini yapılandırma
Düğüm havuzu düzeyinde sysctl ve Saydam Büyük Sayfalar (THP) parametrelerini özelleştirebilirsiniz. Tüm parametreler dosyalar aracılığıyla yapılandırılabilmekle birlikte belirli bir sysctl parametreleri seçimi ve tüm THP parametreleri ACK konsolu veya OpenAPI kullanılarak ayarlanabilir.
Konsol veya OpenAPI kullanarak yapılandırma
Konsol
Özel işletim sistemi parametrelerinin uygulanması mevcut düğümlerin yapılandırmasını değiştirir ve hizmetlerinizi etkileyebilir. Bu işlemi yoğun olmayan saatlerde yapmanızı öneririz.
ACK konsolunda oturum açın. Sol gezinme bölmesinde Clusters öğesini tıklayın.
Clusters sayfasında yönetmek istediğiniz kümeyi bulun ve adına tıklayın. Sol gezinme bölmesinde Nodes > Node Pools seçeneklerini seçin.
Düğüm havuzu listesinde hedef düğüm havuzunu bulun ve Actions sütunundaki ... > OS Configuration seçeneğini seçin.
Ekrandaki notları dikkatlice okuyun. + Custom Parameters seçeneğini tıklayın parametreleri seçin ve hedef düğümleri belirtin. Maximum Number of Nodes to Repair per Batch değerini ayarlayın (maksimum değer 10'dur) ardından Submit butonuna tıklayın.
Maximum Number of Nodes to Repair per Batch değerini ayarladıktan sonra işletim sistemi yapılandırması düğümlere toplu işler halinde uygulanır. Bu süreçte ilerlemeyi Event History bölümünden izleyebilir duraklatma devam ettirme ve iptal etme gibi eylemlerle yürütmeyi kontrol edebilirsiniz.
Duraklatma işlemi yükseltilen düğümleri doğrulamanıza olanak tanır. Görevi duraklattığınızda devam eden düğümlerin yapılandırması tamamlanır ancak siz devam ettirene kadar işlem diğer düğümlere ilerlemez.
Yapılandırma görevini zamanında tamamlayın. Duraklatılmış tüm görevler yedi gün sonra otomatik olarak iptal edilir ve ilgili olay ile günlük bilgileri silinir.
OpenAPI
Konsola ek olarak işletim sistemi parametrelerini ModifyNodePoolNodeConfig işlemi aracılığıyla da özelleştirebilirsiniz.
Yapılandırma dosyası kullanarak yapılandırma
ACK özel parametreleri /etc/sysctl.d/99-user-customized.conf dosyasına yazmanıza olanak tanır. Bu dosya düğüm başlatma ve yeniden başlatma sırasında uygulanan özel yapılandırmalar için ayrılmıştır. Bu dosyadaki sysctl parametreleri düğüm yeniden başlatıldığında öncelik kazanarak hem işletim sistemi varsayılanlarını hem de konsol OS Configuration özelliği üzerinden uygulanan ayarları geçersiz kılar.
sysctl parametrelerini ayarlamak Linux çekirdeğinin çalışma şeklini değiştirir ve performans düşüşüne veya düğüm arızasına yol açarak hizmetlerinizi etkileyebilir. Herhangi bir değişiklik yapmadan önce riskleri tamamen değerlendirin.
Mevcut düğümler
Düğüm havuzundaki mevcut düğümler için düğümde oturum açın ve yapılandırma dosyasını değiştirin. Ardından değişiklikleri hemen uygulamak üzere aşağıdaki komutu çalıştırın:
sysctl -p /etc/sysctl.d/99-user-customized.conf
Örnek yapılandırma dosyası (/etc/sysctl.d/99-user-customized.conf):
# Filesystem settings
fs.file-max = 2097152
fs.nr_open = 1048576
# Networking settings
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 8096
# Memory / kernel settings
vm.max_map_count = 262144
Parametre adlarını ve değerlerini iş yükünüz için gerekenlerle değiştirin.
Yeni düğümler (yatay ölçeklendirme)
Yatay ölçeklendirme yoluyla düğüm havuzuna eklenen yeni düğümler için düğüm havuzunun User Data alanına bir betik ekleyebilirsiniz. Bu sayede yeni düğümler özel parametre değerlerini otomatik olarak kullanır.
Düğüm havuzu yapılandırmanızın User Data alanında özel yapılandırmayı /etc/sysctl.d/ dizinindeki bir dosyaya yazmak için bir betik ekleyin. ${sysctl_key} ve ${sysctl_value} ifadelerini gerçek parametre ve değerle değiştirin.
#!/bin/bash
echo "${sysctl_key} = ${sysctl_value}" >> /etc/sysctl.d/99-user-customized.conf
sysctl -p /etc/sysctl.d/99-user-customized.conf
Daha fazla bilgi için bkz. Düğüm havuzları oluşturma ve yönetme .
Değişikliklerin etkili olduğunu doğrulama
Özel işletim sistemi parametrelerini uyguladıktan sonra değişikliklerin düğümlerinize uygulandığını doğrulayın.
Düğüm havuzundaki bir düğümde oturum açın. Daha fazla bilgi için bkz. Bir ECS örneğine bağlanma.
-
Bir parametrenin geçerli değerini kontrol etmek için
sysctlkomutunu çalıştırın. Örneğin: Beklenen çıktı:sysctl fs.file-maxfs.file-max = 2097152 -
THP parametreleri için ilgili sysfs dosyasını okuyun. Örneğin:
cat /sys/kernel/mm/transparent_hugepage/enabled ACK konsolunda düğüm havuzunun Event History bölümünde yapılandırma görevinin durumunu kontrol edin.
sysctl parametre listesi
Aşağıdaki tablolarda Default Value ACK'nin bir düğüm havuzunu başlatırken varsayılan olarak atadığı değeri ifade eder.
Bu parametreler için geçerli değer aralıkları hakkında bilgi edinmek için Linux Çekirdeği sysctl parametreleri belgelerine bakın.
Burada listelenmeyen veya konsolda ya da OpenAPI'de henüz desteklenmeyen parametreleri değiştirmek için Yapılandırma dosyası kullanarak yapılandırma bölümündeki adımları izleyebilirsiniz.
Dosya sistemi parametreleri
Bu parametreler dosya tanıtıcı sınırlarını inotify izlemelerini ve dosya sistemi davranışını kontrol eder. G/Ç yoğun iş yükleri veya çok sayıda dosya açan uygulamalar için bu ayarları ince ayar yapın.
| Alan adı | Açıklama | Varsayılan değer | Konsol veya OpenAPI |
|---|---|---|---|
fs.aio-max-nr |
Eşzamansız G/Ç işlemlerinin maksimum sayısı. | 65536 | Evet |
fs.file-max |
Sistemin açabileceği maksimum dosya tanıtıcı sayısı. | 2097152 | Evet |
fs.inotify.max_user_watches |
Tek bir kullanıcının oluşturabileceği maksimum inotify izleme sayısı. | 524288 | Evet |
fs.inotify.max_user_instances |
Tek bir kullanıcının oluşturabileceği maksimum inotify örneği sayısı. Kullanıcı başına kaynak kullanımını sınırlar. | 16384 | Hayır |
fs.inotify.max_queued_events |
Çekirdekte kuyruğa alınabilecek maksimum dosya sistemi olayı sayısı. | 16384 | Hayır |
fs.nr_open |
Tek bir sürecin açabileceği maksimum dosya tanımlayıcı sayısı. Bu değer fs.file-max değerinden küçük olmalıdır. |
1048576 | Evet |
fs.may_detach_mounts |
Çekirdeğin bir süreç tarafından hala erişilmekte olsa bile bir bağlantı noktasını ad alanından güvenli bir şekilde ayırmasına olanak tanıyarak tüm ad alanının kilitlenmesini önler. | 1 | Hayır |
Ağ parametreleri
Bu parametreler soket arabelleklerini bağlantı kuyruklarını TCP belleğini ve ARP önbelleği davranışını yönetir. Yüksek trafikli veya yüksek eşzamanlılık gerektiren iş yükleri için bu ayarları ince ayar yapın.
| Alan adı | Açıklama | Varsayılan değer | Konsol veya OpenAPI |
|---|---|---|---|
net.core.netdev_max_backlog |
Bir ağ arabirimi paketleri çekirdeğin işleyebileceği hızdan daha hızlı aldığında işlenmek üzere kuyruğa alınabilecek maksimum veri paketi sayısı. | 16384 | Evet |
net.core.optmem_max |
Her ağ soketi için ikincil arabelleğin bayt cinsinden maksimum boyutu. | 20480 | Evet |
net.core.rmem_max |
Her ağ soketi için alma arabelleğinin bayt cinsinden maksimum boyutu. | 16777216 | Evet |
net.core.wmem_max |
Her ağ soketi için gönderme arabelleğinin bayt cinsinden maksimum boyutu. | 16777216 | Evet |
net.core.wmem_default |
Her ağ soketi için gönderme arabelleğinin bayt cinsinden varsayılan boyutu. | 212992 | Evet |
net.core.somaxconn |
Dinleyen bir soket için kuyruğa alınabilecek maksimum bağlantı sayısı; eşzamanlı bağlantı işleme kapasitesini kontrol eder. | 32768 | Hayır |
net.ipv4.tcp_mem |
Bellek sayfaları cinsinden (genellikle 4 KB) TCP yığınına ayrılan bellek miktarı. Bu parametre düşük eşik baskı eşiği ve yüksek eşik olmak üzere üç tamsayı değerinden oluşur. Bu değerleri sırasıyla ayarlamanız gerekir. | Toplam sistem belleğine göre dinamik olarak hesaplanır. | Evet |
net.ipv4.tcp_wmem |
TCP gönderme arabelleği için minimum varsayılan ve maksimum boyutlar (bayt cinsinden). Bu ayar TCP bağlantılarının ağ aktarım hızını ve bellek tüketimini doğrudan etkiler. | 4096 12582912 16777216 | Hayır |
net.ipv4.tcp_rmem |
TCP alma arabelleği için minimum varsayılan ve maksimum boyutlar (bayt cinsinden). Bu ayar TCP bağlantılarının ağ aktarım hızını ve bellek tüketimini doğrudan etkiler. | 4096 12582912 16777216 | Hayır |
net.ipv4.tcp_max_syn_backlog |
SYN kuyruğunda tamamlanmamış üç yönlü el sıkışmaya sahip maksimum bağlantı isteği sayısı. | 8096 | Hayır |
net.ipv4.tcp_slow_start_after_idle |
Bir TCP bağlantısının uzun süre boş kaldıktan sonra yavaş başlatma algoritmasına yeniden girip girmeyeceğini kontrol eder. | 0 | Hayır |
net.ipv4.ip_forward |
IPv4 paket iletimini etkinleştirerek sistemin yönlendirici gibi davranmasına olanak tanır. | 1 | Hayır |
net.ipv4.neigh.default.gc_thresh1 |
ARP önbelleğinde tutulacak minimum giriş sayısı. Giriş sayısı bu değerin altındaysa sistem çöp toplamayı gerçekleştirmez. | Sistem ön ayarı | Evet |
net.ipv4.neigh.default.gc_thresh2 |
ARP önbelleğindeki maksimum giriş sayısı için yumuşak sınır. Giriş sayısı bu değere ulaştığında sistem beş saniyelik bir gecikmenin ardından çöp toplamayı planlar. | 1024 | Evet |
net.ipv4.neigh.default.gc_thresh3 |
ARP önbelleğindeki maksimum giriş sayısı için sabit sınır. Giriş sayısı bu değere ulaştığında sistem derhal çöp toplama işlemi gerçekleştirir. Giriş sayısı sürekli olarak bu sınırı aşarsa çöp toplama işlemi sürekli olarak çalışır. | 8192 | Evet |
net.bridge.bridge-nf-call-iptables |
Köprülenmiş trafiğin iptables kuralları tarafından işlenmesini sağlayarak ağ güvenlik ilkelerinin uygulanmasını garantiler. | 1 | Hayır |
Bellek ve çekirdek parametreleri
Bu parametreler süreç sınırlarını iş parçacığı sayılarını bellek eşlemeyi ve çekirdek tanılama işlevlerini kontrol eder. İş yükleriniz çok sayıda süreç veya iş parçacığı gerektirdiğinde ya da kararlılık için çekirdek davranışını ayarlamanız gerektiğinde bu ayarları ince ayar yapın.
| Alan adı | Açıklama | Varsayılan değer | Konsol veya OpenAPI |
|---|---|---|---|
kernel.pid_max |
Sistemin atayabileceği maksimum Süreç Kimliği (PID). | 4194303 | Evet |
kernel.threads-max |
Sistemin oluşturabileceği maksimum iş parçacığı sayısı. | 504581 | Evet |
kernel.softlockup_panic |
Etkinleştirildiğinde yumuşak kilitlenme meydana gelirse çekirdek panik tetikler ve sistemi yeniden başlatarak sistemin durumunu hızla geri yüklemesine olanak tanır. | 1 | Hayır |
kernel.softlockup_all_cpu_backtrace |
Etkinleştirildiğinde yumuşak kilitlenme algılandığında tüm CPU'lardan hata ayıklama bilgilerini yakalayarak tanılama sürecine yardımcı olur. | 1 | Hayır |
vm.max_map_count |
Tek bir sürecin sahip olabileceği maksimum bellek haritalama alanı sayısı. Aşırı bellek kullanımını sınırlar. | 262144 | Hayır |
user.max_user_namespaces |
Tek bir kullanıcının oluşturabileceği maksimum kullanıcı ad alanı sayısı. | 0 | Evet |
THP parametre listesi
Saydam Büyük Sayfalar (THP) küçük bellek sayfalarını (genellikle 4 KB) otomatik olarak daha büyük sayfalara (genellikle 2 MB veya daha fazla) birleştiren bir Linux çekirdek özelliğidir. Bu süreç Sayfa Tablosu Girişi (PTE) ek yükünü ve bellek erişim sayısını azaltarak Çeviri Bakam Önbelleği (TLB) üzerindeki baskıyı hafifletir ve bellek erişim verimliliğini artırır.
Aşağıdaki tüm parametreler ACK konsolu veya OpenAPI aracılığıyla yapılandırılabilmektedir.
Bu parametrelerin varsayılan değerleri işletim sistemine ve çekirdek sürümüne bağlı olarak değişir. Daha fazla bilgi için Linux Çekirdeği THP parametreleri belgelerine bakın.
| Alan adı | Açıklama | Olası değerler |
|---|---|---|
transparent_enabled |
THP'nin genel olarak etkin olup olmadığını kontrol eder. | - always: THP'yi sistem genelinde etkinleştirir.- never: THP'yi sistem genelinde devre dışı bırakır.- madvise: THP'yi yalnızca madvise() sistem çağrısı aracılığıyla MADV_HUGEPAGE bayrağı ile işaretlenen bellek bölgeleri için etkinleştirir. |
transparent_defrag |
Çekirdeğin büyük sayfalar oluşturmak için bellek parçalama işlemi gerçekleştirip gerçekleştirmediğini kontrol eder. Etkinleştirildiğinde sistem küçük sayfaları tek bir büyük sayfada birleştirerek sayfa tablosu boyutunu küçültür ve performansı artırır. | - always: Büyük bir sayfa ayrılamazsa sistem ayırma işlemini duraklatır ve hemen belleği geri kazanıp parçalamaya çalışır. Yeterli bitişik boş bellek mevcutsa büyük sayfa ayırma işlemi devam eder.- defer: Büyük bir sayfa ayrılamazsa sistem bunun yerine standart 4 KB'lık bir sayfa ayırır. kswapd ve kcompactd çekirdek iş parçacıkları arka planda belleği geri kazanmak ve parçalamak için uyanır. Daha sonra yeterli bitişik bellek mevcutsa khugepaged çekirdek iş parçacığı bu 4 KB'lık sayfaları 2 MB'lık büyük bir sayfada birleştirebilir.- madvise: Ayırma yalnızca madvise() sistem çağrısı aracılığıyla MADV_HUGEPAGE bayrağı ile işaretlenen bellek bölgeleri için always gibi davranır. Diğer tüm bellek bölgeleri için sayfa hatası standart 4 KB'lık bir sayfanın ayrılmasıyla sonuçlanır.- defer+madvise: Ayırma MADV_HUGEPAGE ile işaretlenen bellek bölgeleri için always gibi davranır. Diğer tüm bellek bölgeleri için ayırma davranışı defer değerine eşdeğerdir.- never: Büyük sayfalar için tüm parçalama çabalarını yasaklar. |
khugepaged_defrag |
khugepaged bellek parçalanmasını azaltmak ve performansı artırmak için büyük sayfaları yöneten ve birleştiren bir çekirdek iş parçacığıdır. Dağınık büyük sayfaları tarar ve bunları bitişik bloklar halinde birleştirerek bellek kullanımını iyileştirir. Bu süreç bellek yolundaki kilitleme işlemlerini içerdiğinden ve khugepaged çekirdek iş parçacığı sayfaları uygunsuz zamanlarda tarayıp dönüştürebileceğinden uygulama performansını potansiyel olarak etkileyebilir. |
- 0: khugepaged parçalamasını devre dışı bırakır.- 1: khugepaged çekirdek iş parçacığı sistem boşta olduğu期间lerde düzenli olarak uyanarak bitişik 4 KB'lık sayfaları 2 MB'lık büyük sayfalarda birleştirir. |
khugepaged_alloc_sleep_millisecs |
Bir başarısızlığın ardından khugepaged çekirdek iş parçacığının sonraki büyük sayfa ayırma denemesinden önce milisaniye cinsinden beklediği süre. Kısa bir sürede tekrarlayan ayırma hatalarını önler. |
Daha fazla bilgi için bkz. khugepaged parçalama. |
khugepaged_scan_sleep_millisecs |
khugepaged çekirdek iş parçacığının belleği taramak için her uyandığı arasındaki milisaniye cinsinden aralık. |
|
khugepaged_pages_to_scan |
khugepaged çekirdek iş parçacığının her uyandığında taradığı bellek sayfası sayısı. |