Mesaj işlemciler için çöp toplayıcıyı yapılandırma

Edge for Private Cloud 4.54.00'da (Java 21'de çalışır) Message Processor, varsayılan olarak Garbage-First Garbage Collector'ı (G1GC) kullanır. Bu dokümanda, Mesaj İşleyici'de çöp toplama ayarlarının nasıl yapılandırılacağı ve doğrulanacağı açıklanmaktadır.

Mesaj İşleyiciler'de çöp toplayıcıyı özelleştirme

Bu bölümde, Edge Mesaj İşleyici'de alternatif atık toplama (GC) ayarlarını yapılandırma prosedürü özetlenmektedir. GC parametrelerini, Mesaj İşleyici'deki GC özelliklerini güncelleyerek yönetirsiniz. Herhangi bir yapılandırma özelliğini ayarlamak için Edge'i yapılandırma bölümünde tanımlanan jeton söz dizimini kullanın.

GC ayarlarını Mesaj İşleyiciler'de değiştirmek için aşağıdaki adımları uygulayın:

  1. GC mülkünü kontrol etme
  2. Mesaj İşleyicilerde GC'yi değiştirme

GC mülkünü kontrol edin

Aşağıdaki adımlarda, yapılandırılmış GC özelliklerinin nasıl kontrol edileceği açıklanmaktadır:

  1. Aşağıdaki komutu kullanarak Mesaj İşleyici kaynak dizininde /opt/apigee/edge-message-processor/source GC özelliklerini arayın:
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. Bu komutun çıkışında, Mesaj İşleyici için GC özelliklerinin yapılandırmasının gösterildiğini doğrulayın:
    /opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useZGC={T}conf_system_useZGC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}

    {T}{/T} etiketleri arasındaki dize, Mesaj İşleyici'nin .properties dosyasında ayarlayabileceğiniz özelliğin adıdır.

Mesaj İşleyicilerde GC'yi değiştirme

Aşağıdaki adımlarda, Apigee Mesaj İşlemciler'de GC ayarlarının nasıl değiştirileceği açıklanmaktadır:

  1. Mesaj İşleyici makinesindeki /opt/apigee/customer/application/message-processor.properties dosyasını bir düzenleyicide açın. Dosya mevcut değilse oluşturun. Örneğin:
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Hedef profilinize göre istediğiniz GC yapılandırma satırlarını ekleyin:
    • A seçeneği: Bazı değişikliklerle birlikte varsayılan çöp toplayıcı olarak G1GC'yi kullanın:
      conf_system_useG1GC=true
      conf_system_useStringDeduplication=true
      conf_system_g1gc.g1ReservePercent=15
    • B seçeneği: Nesilsel ZGC'yi etkinleştirin (Ultra düşük gecikmeli dağıtımlar için isteğe bağlıdır):
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • 3. seçenek: Genel bir GC ayarını etkinleştirme:

      Genel GC özelliklerini yapılandırmak için bileşenin .properties geçersiz kılma dosyasında (/opt/apigee/customer/application/message-processor.properties) bin_setenv_ext_jvm_opts değerini ayarlayın ve ardından bileşeni yeniden başlatın. Örneğin:

      conf_system_useG1GC=false
      conf_system_useZGC=false
      bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
  3. Değişikliklerinizi kaydedin.
  4. Bu özellikler dosyasının sahibinin apigee kullanıcısı olduğundan emin olun. Örneğin:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Aşağıdaki komutu kullanarak Mesaj İşleyici'yi yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Birden fazla Mesaj İşleyiciniz varsa bu adımları tüm Mesaj İşleyicilerde tekrarlayın.

Dize tekilleştirmeyi güncelleme

Varsayılan olarak G1GC yapılandırması, UseStringDeduplication değerini true olarak ayarlar. Bu sayede, aynı String değerlerinin tek bir karakter dizisini paylaşmasına izin vererek Java yığın bellek ayırmasını optimize eder. Dize tekilleştirmeyi devre dışı bırakmak için /opt/apigee/customer/application/message-processor.properties içinde conf_system_useStringDeduplication=false değerini ayarlayın ve Mesaj İşlemcilerde GC'yi değiştirme bölümünde açıklandığı gibi Mesaj İşlemci'yi yeniden başlatın.

Mesaj İşleyicilerinde GC yapılandırmasını doğrulama

GC yapılandırma değişikliklerinizin Message Processor'da uygulandığını doğrulamak için:

  1. /opt/apigee/edge-message-processor/conf dizininde GC mülkünü arayın ve yeni değerle ayarlandığını kontrol edin. Örneğin:
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. /opt/apigee/edge-message-processor/conf/system.properties değerinin yeni yapılandırılan değerlerinizi yansıttığını doğrulayın. Örneğin, Apigee Default GC ayarları aşağıdaki gibi gösterilir:
    /opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
    /opt/apigee/edge-message-processor/conf/system.properties:useZGC=false
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.maxGCPauseMillis=200
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.initiatingHeapOccupancyPercent=45
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.g1ReservePercent=15
    /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
  3. Çalışan Mesaj İşleyici JVM işleminin beklenen -XX: işaretleriyle başlatıldığını doğrulayın:
    ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
    
    • Apigee Default G1GC için komut satırının aşağıdakileri içerdiğini doğrulayın: -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m
    • Generational ZGC için komut satırının şunları içerdiğini doğrulayın: -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. GC ayarlarını hâlâ yapılandıramıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.

Sırada ne var?