ضبط وأمثله عمل برمجيات السجل الكوكا

From CoCCA Registry Services (NZ) Limited

Jump to: navigation, search

Contents

ضبط أداء برمجيات قاعدة معطيات السجل PostgreSQL


تستخدم برمجيات الكوكا برمجيات قاعدة البرمجيات postgresql، ويعتبر ضبط أداء برمجيات قاعده المعطيات من العوامل الأساسية لضبط وأمثله أداء برمجيات الكوكا، ويعتمد ضبط أداء برمجيات قاعده المعطيات على عدة موسطات منها ماهو مرتبط باستخدام الذاكرة ومنها ماهو مرتبط بمعالجه بمناقلات قواعد المعطيات، سنقوم بمناقشه كل معامل بشكل منفصل.


1- الاعدادات المرتبطه باستخدام الذواكر:


من المستحسن توزيع الذواكر المتوفرة في مخدم السجل على البرمجيات التي يتم تنفيذها في ذلك المخدم، وكون قاعده المعطيات تعتبر الجزء الأكثر أهمية يجب أن نحرص على توزيع الذواكر بحيث نحصل على أفضل أداء لهذه البرمجيات. فلمعرفه حجم الذواكر المتوفره على المخدم بوحده GigaByte يمكننا تنفيذ الأمر التالي: free -g . ومن التوصيات الخاصة ببرمجيات Postgresql ان يتم اسناد الجزء المخصص لبرمجيات قاعده معطيات Postgresql:

- أسناد مايقارب ربع الذاكرة المتوفرة للمخدم للمعامل shared_buffers، ويتم اسناد قيمه هذا المتحول من خلال ملف التوصيف الأساسي الخاص ببرمجيات 
  Postgresql، وهذا الملف هو postgresql.conf ويكون موجود ضمن المسار:
  opt/cocca-8/postgresql/data/postgresql.conf/.
- اسناد مايقارب ثلاث ارباع الذاكرة المخصصه لبرمجيات قاعده المعطيات للمعامل effective_cache_size وذلك من خلال تعديل قيمته الافتراضية في ملف 
  التوصيف الأساسي الخاص بقاعده معطيات السجل.
  فعلى سبيل المثال اذا كان لدينا مخدم بسعه ذواكر 11 GB فيمكن تخصيص 2GB لبرمجيات الجافا ونظام
 (عادة يتم حساب 15% من حجم الذواكر لنظام التشغيل)، وتخصيص 9GB لبرمجيات postgresql، كالتالي:

   
   OLD shared_buffers = 128MB                  
   NEW shared_buffers = 3072MB                 
   
  

   
   OLD  #effective_cache_size = 128MB
   NEW   effective_cache_size = 6144MB
   

2- المعامل log_temp_files


عند تفعيل هذا المعامل فإنه يتم تسجيل كافة الملفات المؤقته على القرص الصلب، وتكمن الحاجه لكتابه الملفات المؤقته عند تنفيذ اوامر SQL معقدة  
وطويلة لادخال او تعديل او استرجاع بيانات من قاعده المعطيات، وبالتالي تصبح هنالك حاجه لذواكر أكثر من الحجم المسند للمعامل
work_mem  
في ملف التوصيف الأساسي لبرمجيات قاعده المعطيات.

3- المعامل work_mem  :


  يستحسن ضبط قيمة المعامل work_mem  بمايتناسب مع الحجم الفعلي لطلبات SQL المنفذه على قاعده معطيات السجل، فالقيمة الإفتراضية لهذا 
 المتحول هي 1MB، فلضبط هذا المعامل يستحسن تفعيل قيمه المعامل السابق log_temp_files ومن ثم مراقبه ملفات التسجيل الخاصة بقاعده المعطيات، بشكل 
 افتراضي في برمجيات الكوكا يكون ملف التسجيل ضمن المسار:
                              opt/cocca-8/postgresql/postgresql.conf/

فبمجرد وجود رساءل على ملف التسجيل تبين وجود عدد من الملفات المؤقته الخاصة بطلبات SQL المنفذه، ففي هذه الحالة يستحسن أن يتم ضبط قيمه المعامل work_mem بحيث يتم تغيرها بقيم مثل 64MB ومن ثم مراقبه ملفات التسجيل، فإذا استمر وجود عدد كبير من هذه الرساءل فيمكن رفع هذه القيمه إلى 128MB.



4- ضبط قيمه المعامل max_connections

 وتمثل عدد طلبات تأسيس الاتصال الواردة للمخدم من برمجيات الزبون (هنا ستكون JAVA هي من تقوم باالاتصال بقاعده معطيات السجل وارسال طلبات SQL)،
 واهذه القيمه أثر كبير على حجم استخدام الذواكر ويتناسب بشكل طردي معه، وتعديل هذه القيمه يتطلب اعادة تشغيل برمجيات السجل.

ضبط أداء برمجيات مخدم تطبيقات الويب resin


استخدم الوصول الأمن لواجه الويب للسجل من خلال استخدام HTTPS

  يجب أن يتم استخدام بروتوكول HTTPs للوصول لواجه الويب الخاصة ببرمجيات السجل، بحيث نضمن أمان الخدمه، وكما يجب أيضاً استخدام خوارزميات التشفير 
 الموثوقة، والتي يتم ضبطها من خلال ملف التوصيف الاساسي الخاص ببرمجيات resin التالي:
           opt/cocca-8/resin/conf/resin.xml/
 ومن المستحسن إضافه السطر التالي في الجزء المخصص لتحديد مخزن المفاتيح والشهادات keystore في ملف resin.xml.

,ciphersuites>SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA>

                       TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256  
                                                                             </cipher-suites>

مثال:

                                                                    <http address="xx.xx.xx.xx" port="443">
                                                                                               <jsse-ssl>
                                                  <key-store-type>jks</key-store-type>
                     <key-store-file>/opt/cocca-8/resin/keys/Your.jks</key-store-file> 
                                                           <password>******</password>

cipher-suites>SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA>

                        TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
                                                                                      </cipher-suites> 
                                                                                             </jsse-ssl>
                                                                                                  </http>

- استخدام cookie مختلفه ليتم استخدامها باتصال SSL الأمن، فوجود نوعين مستقلين من cookie يزيد الأمان ويمكن ضبط ذلك في ملف التوصيف الأساسي في

 برمجيات مخدم الويب resin بالشكل التالي:

اضافه الاسطر التالية تحت الرماز </server id="" address="127.0.0.1" port="6800"> في السطر 170 تقريباً.

                                                                             --!>
                   < --  For security, use a different cookie for SSL sessions 
                       <ssl-session-cookie>SSL_JSESSIONID</ssl-session-cookie> 

ضبط مستوى التسجيل (log level) في ملفات الستجيل في بيئة عمل حقيقية لبرمجيات الكوكا


  في برمجيات الكوكا يتم ضبط مستوى التسجيل بين تسجيل كامل الأحداث debug أو تسجيل فقط الأخطاء ERROR ويتم ضبط مستوى التسجيل من خلال تطبيق الجافا    
 ،log4j ، بشكل أفتراضي يكون التسجيل الخاص بالكوكا هو من مستوى debug، والذي يمكن أن ينتج عليه تسجيل عدد كبير جداً من الأحداث، ففي بيئة عمل 
  حقيقية من المستحسن أن يتم ضبط مستوى التسجيل على مستوى ERROR.

ملاحظة :

     يجب أ يتم ضبط هذه القيمه في كل مرة يتم فيها تحديث برمجيات الكوكا كون أن تحديث البرمجيات ستسبب بمسح الملف القديم.

تعديل مستوى التسجيل يتم بشكل بسيط من خلال تعديل السطر التالي:

<priority value="debug"/>  TO <priority value="ERROR"/> 
وذلك في الملف التالي:
 opt/cocca-8/production//ROOT/WEB-INF/classes/log4j.xml

استخدام بروتوكول Https بدلاً من بروتوكول https في خدمه الاستعلام عن النطاق

 أن المستحسن داءما استخدام بروتوكول HTTPs بدل من بروتوكول HTTP.
 يمكن أن يتم ذلك من خلال تعديل القسم الخاص باعداد عنوان الويب الخاص بخدمه WHOIS في ملف التوصيف resin.xml  بالشكل التالي:

                                    code>   http://anything.com/anything.html>
                       redirect => https://anything.com/anything.html
                                                                       </code>
 على سبيل المثال سيتم توجيه موقع الويب  http://whois.nic.TLD  إلى  https://whois.nic.TLD

 تعديل الملف                  
            opt/cocca-8/resin/conf/resin.xml/
                            

اضافه الاعدادات اللازمه وفق الاسطر التالية:
          
                            <resin xmlns="http://caucho.com/ns/resin"xmlns:resin="urn:java:com.caucho.resin">
                                                                 <cluster ...>
                             <host id="registry.nic.TLD" root-directory=".">
                                 <host-alias>whois.nic.TLD</host-alias>
         <resin:Redirect regexp="^/whois.jsp" target="https://whois.nic.TLD/whois.jsp">
                              <resin:IfSecure value="false"/>
                                          </resin:Redirect>
                                               ...
                                                                   </host>
                                  </resin>


أن العنوان المخصص لخدمه الاستعلام عن نطاق والذي عادة يتم مطابقته مع موقع الويب الخاص بخدمه الاستعلام عن نطاق whois.nic.TLD يكون هذا العنوان عادة بالاستماع إلى طلبات HTTP فقط بشكل افتراضي، وبعد اضافه عمليه توجيه طلبات HTTP إلى HTTPs يجب أن يقوم عنوان الويب باستقبال طلبات HTTPS على المنفذ 443، لذلك سنقوم بإضافة التوصيف التالي (على افتراض ان عنوان الانترنت هو XX.XX.XX.XX )بالشكل التالي:


<http address="xxx.xxx.xxx.xxx" port="443">
     <jsse-ssl>
        <key-store-type>jks</key-store-type>
           <key-store-file>/opt/cocca-8/keys/xxxxxxxxxxxxxxx</key-store-file>
             <password>********</password>
             <cipher-suites>SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,
              TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</cipher-suites>
         </jsse-ssl>
</http>


دعم مخدم الويب resin للنطاقات الدولية IDN


اذا اردنا اضافه عنوان ويب خاص بخدمه الاستعلام عن نطاق WHOIS للنطاقات الدولية IDN إلى توصيف مخدم resin يجب أن نقوم بإضافه الرماز punycode الخاص بهذا النطاق، وأيضاً اضافه الرماز encoding Decimal NCRs الخاص بهذا النطاق إلى ملف التوصيف الخاص بهذا النطاق أيضاً.


/opt/cocca-8/resin/conf/resin.xml

مثلاً إضافه موقع ويب خاص بخدمة الاستعلام عن نطاق للنطاق الدول (".نطاق"):


      <host id="registry.nic.TLD" root-directory=".">
      <host-alias>whois.nic.نطاق</host-alias>
      <host-alias>whois.nic.xn--mgb5a8an</host-alias>