ضبط وأمثله عمل برمجيات السجل الكوكا
From CoCCA Registry Services (NZ) Limited
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>
