Uzak Doğrudan Bellek Erişimi (JSOR) üzerinden Java Yuvalarını Etkinleştirme (yalnızcaLinux )

JSOR, Java™ uygulamanızı başlatırken bir komut satırı sistem özelliği belirtilerek etkinleştirilir. Java uygulama sunucusunda ve istemci sistemlerinde, bağlantı için RDMA kurallarını belirten geçerli bir yapılanış kütüğü olmalıdır. RDMA hizmetleri kullanılamıyorsa, isteğe bağlı olarak sunucunuzu, düz yuva yuvaları için TCP bağlantıları alacak şekilde yapılandırabilirsiniz.

Başlamadan önce

Not: RDMA uygulaması kullanımdan kaldırılmıştır ve ileride IBM® SDK, Java Technology Edition, Sürüm 8 'in sonraki bir yayınında kaldırılacaktır. Olası bir seçenek, açık kaynak Libfabric kitaplığidir.
Read the overview section about Uzak Doğrudan Bellek Erişimi (JSOR) üzerinden Java Yuvaları (yalnızcaLinux ), which contains some important considerations. Özellikle aşağıdaki noktalara dikkat etmelisiniz:
  • Bu özellik aşağıdaki altyapılarda ve Remote Direct Memory Access (RDMA) bağdaştırıcılarında bulunur:
    • Linux® 32-bit x-86 with either InfiniBand (IB) or RDMA over Converged Ethernet (RoCE)
    • Linux AMD64/EM64T , IB ya da RoCEile
    • Linux 32-bit POWER® with RoCE
    • Linux 64-bit POWER with RoCE
    • IBHizmet yenileme 2 değişikliklerinin sonuileHizmet yenileme 2 için değişikliklerden başlayınLinux 64-bit POWER8® (Little Endian)
    Bağdaştırıcılar, uygun bir yüksek performanslı anahtar ile birbirine bağlanmalıdır.
  • OpenFabrics Alliance Web sitesinden yüklenebilen OpenFabrics Enterprise Distribution (OFED) v1.5.3 ya da sonraki yayın düzeyini kurmanız gerekir: https://www.openfabrics.org/index.php/resources/ofed-for-linux-ofed-for-windows/ofed-overview.html. Çalıştırma zamanı sırasında, şu kitaplıklardaki simgeler dinamik olarak konumlandırılır ve yüklenir: librdmacm.so ve libibverbs.so. Bu kitaplıklar, OFED yürütme zamanı tarafından sağlanır.
  • Kullanıcıların her iki anasistemdeki belleği kilitlemek için yeterli izinlere sahip olması gerekir. Veri aktarımları sırasında işletim sisteminin bellek sayfalarını değiştirmesini önlemek için, RDMA yuvası arabellekleri kilitlenmiş ya da sabitlenmelidir.

Bu görev hakkında

JSOR, komut satırında bir sistem özelliği belirterek istemcide ve sunucu sisteminde etkinleştirilir. Sistem özellikleri, düz akım yuvası uygulamaları ve NIO kanalı uygulamaları için farklıdır. Yapılandırma dosyasının yapımına ilişkin ayrıntılı bilgi için config_file, bkz. -Dcom.ibm.net.rdma.conf (yalnızcaLinux ) ya da -Dcom.ibm.nio.rdma.conf (yalnızcaLinux ). Hizmet yenilemesi 2 düzeltme paketi 10 için değişikliklerin başlatılmasıSupport for NIO kanalı uygulamaları bu güncellemeye eklenir.Hizmet yenileme 2 düzeltme paketi 10 değişikliklerinin sonu JSOR ' u etkinleştirmek için aşağıdaki adımları tamamlayın:

Yordam

  1. Sunucu sisteminde sunucu yapılandırma dosyasını kabul et kuralı bir kuralla yaratın.
  2. İstemci sisteminde bir bağlantı kurala sahip istemci yapılanışı dosyasını yaratın.
  3. Start the server, specifying the command-line system property -Dcom.ibm.net.rdma.conf=server_configuration_file or -Dcom.ibm.nio.rdma.conf=server_configuration_file
  4. Start the client, specifying the command-line system property -Dcom.ibm.net.rdma.conf=client_configuration_file or -Dcom.ibm.nio.rdma.conf=client_configuration_file
  5. İsteğe bağlı: Sistem tarafından kullanılan bağ tanımlama adresini geçersiz kılmak istiyorsanız, -Dcom.ibm.net.rdma.preferredAddress ya da -Dcom.ibm.nio.rdma.preferredAddress komut satırı sistem özelliğini geçerli bir InfiniBand adresiyle kullanmanız gerekir. Daha fazla bilgi için bkz. -Dcom.ibm.net.rdma.preferredAddress (Linux only) ya da -Dcom.ibm.nio.rdma.preferredAddress (yalnızcaLinux only).
  6. İsteğe bağlı: RDMA bağlantıları olanaklı değilse sunucu sisteminizin TCP istemcilerinden gelen bağlantıları kabul etmesini istiyorsanız, -Dcom.ibm.net.rdma.tcpFallback=truesistem özelliğini belirtin. Bu özellik hakkında daha fazla bilgi için bkz. -Dcom.ibm.net.rdma.tcpFallback (yalnızcaLinux ).
    1. İsteğe bağlı: Bir RDMA sunucusunun, TCP iletişimine geçmeden önce RDMA hizmetleri için beklemesi gereken bir süreyi uygulayabilirsiniz. Daha fazla bilgi için bkz. -Dcom.ibm.net.rdma.tcpFallbackWaitTime (YalnızcaLinux ).
    Bu seçenek, NIO kanalı uygulamaları için desteklenmez.

Sonuçlar

Java uygulama sunucusu ile istemci arasındaki düz ya da NIO akış yuvaları bağlantısı, bağlantının her iki ucunda da kural eşleştirmesi sağlayarak RDMA ' ya yönelik saydam bir şekilde geçiş yapar.
  • Sunucu: Bir RDMA bağlantısına geçiş, bağlama/kabul etme aşamasında gerçekleşir.
  • İstemci: Bağ tanımlama/bağlantı aşamasında RDMA bağlantısına geçiş gerçekleşir.
Bağlanıldığında, sunucu ve istemci uç noktaları, R-Sockets iletişim kuralını kullanarak verileri iletir ve aktarır.

RDMA etkin sistemler arasında bir bağlantı kurmaya çalışırken sorun yaşarsanız, işlemin nerede başarısız olduğunu belirlemek için JSOR izleme olanağını kullanabilirsiniz. Daha fazla bilgi için bkz. JSOR sorun belirleme (yalnızcaLinux ).

Örnek

Aşağıdaki yapılandırma kuralı ile host1adlı Java uygulama sunucusunda server.conf dosyasını oluşturun:
rdma accept host1 1500 host2
All the connections from host2 accepted by host1 on the port 1500 are RDMA connections.
Create file client.conf on the Java application client, host2, with the following configuration rule:
rdma connect host1 1500
Kapı 1500 'de host1 ' e yapılan tüm bağlantılar RDMA bağlantılarıdır.
Komut satırında aşağıdaki komutu belirterek Java uygulama sunucusunu RDMA kipinde başlatın:
java -Dcom.ibm.net.rdma.conf=<path>/server.conf Server
Ya da:
java -Dcom.ibm.nio.rdma.conf=<path>/server.conf NIOServer
Burada <path> , yapılandırma dosyasının tam olarak nitelenmiş yoludur.
Komut satırında aşağıdaki komutu belirterek, RDMA kipinde Java istemcisi uygulamasını başlatın:
java -Dcom.ibm.net.rdma.conf=<path>/client.conf Client
Ya da:
java -Dcom.ibm.nio.rdma.conf=<path>/client.conf NIOClient
Burada <path> , yapılandırma dosyasının tam olarak nitelenmiş yoludur.

Bundan sonra yapılacaklar

RDMA etkin uygulamalarınızın performansını en iyi duruma getirmek için, bağlantı ve veri aktarımı için kaynakları ayarlamalıdır ve boyutlarına ayarlayabilirsiniz. Yuva gönderme ve alma arabelleklerini ve kuyruk boyutlarını yönetmek için, JSOR bir Java ortam değişkeni kümesi içerir. Daha fazla bilgi için bkz. JSOR ortam ayarları (yalnızcaLinux ).