فرآیند جداسازی-موسسه چشم انداز هزاره سوم ملل-آموزش کاربردی GIS و RS
فرآیند جداسازی، تعداد نمونههای GIS سرویس را در یک فرآیند کنترل میکند. میتوانید فرآیند جداسازی بلند یا کوتاه را انجام دهید که هر کدام مزایایی دارند. اگر در یک فرآیند منفرد چندین نمونه دارید، از تکنیک فرآیند کوتاه استفاده میکنید. تعداد نمونهها را در یک فرآیند کم کنید تا نمونهها را در چند فرآیند پخش کنید. بدین ترتیب یک فرآیند جداسازی بلند انجام میدهید. در سرور وقتی در یک فرآیند یک نمونه وجود داشته باشد، ارجاعی به فرآیند بلند است.
پیکربندی جداسازی بلند
با جداسازی هر نمونه در یک فرآیند منفرد، نمونه یک فضای اختصاصی برای خودش در حافظه دارد. بدین معنی که یک سرویس با جداسازی بالا کمتر دچار شکست میشود. حتی اگر یک فرآیند بهطور کامل اجرا نشود و یا در یکی از فرایندها کمبود حافظه پیش آید، هنگامیکه وضعیت نمونهها بهصورت قابل دسترس باقی بماند، فقط یک نمونه بازیابی خواهد شد. از آنجا که در این رویکرد هر نمونه به یک فرآیند نیاز دارد پس به حافظهی بیشتری نیاز خواهد داشت و GIS سرور برای عملیات پیکربندی حافظهی RAM بیشتری نیاز دارد. سرویسهایی که از فرآیند جداسازی بالا استفاده میکنند، مقاومت بیشتری دارند اما از آنجائی که هر نمونهی موجود در سرویس در یک فرآیند خاص خودش اجرا میشود حافظهی بیشتری نیاز است.
اجازه دهید از مثال تکنیک Pooling در فرآیند جداسازی بالا نیز استفاده کنیم. در ابتدا، GIS سرویس Electricity حداقل یک نمونهی در حال اجرا دارد و با توجه به اینکه جداسازی از نوع بالا است پس بدین معنی است که یک فرآیند در حال اجرا است. در نمودار زیر مستطیل کوچکتر فرآیند و دایره نمونه است. درخواست R1 میرسد و یک نمونهی آزاد هم وجود دارد. پس این نمونه برای اجرای درخواست تخصیص داده میشود.
اجرای درخواست R1 با موفقیت تمام میشود و نمونه برای استفادهی مجدد آزاد میشود. سپس برای درخواستهای R2 و R3 فقط یک نمونهی آزاد وجود دارد و هیچ نمونهی قابل دسترس جدیدی ایجاد نمیشود. GIS-SERVER01 یک فرآیند جدید به میزبانی یک نمونهی جدید ایجاد میکند.
در همین حین که سرور مشغول اجرای درخواستهای R2 و R3 میباشد، درخواستهای R4، R5 و R6 نیز میرسند که تعداد نمونهها هم برای اجرای درخواست کافی نیستند. پس سرور دو فرآیند جدید برای درخواستهای جدید ایجاد میکند. درخواست R6 باید منتظر یک نمونهی جدید بماند زیرا بر اساس پارامترهای Pooling که قبلاً پیکربندی کردیم، حداکثر نمونههای هر سرور 4 عدد است.
پیکربندی جداسازی کوتاه
از آنجا که در این نوع پیکربندی چندین نمونه در یک فرآیند گروهبندی میشوند، به حافظهی کمتری نیاز است. نمونههای موجود در یک فرآیند حافظهی تخصیص یافته را بین خودشان بهطور یکسان به اشتراک میگذارند. وقتی یک فرآیند شکست میخورد و ناموفق به اتمام میرسد، همهی نمونههایی که به میزبانی این فرآیند هستند غیرقابل دسترس میشوند.
بهتر است رفتار سرویسی که با پیکربندی جداسازی کوتاه تنظیم شده است و در هر فرآیند سه نمونه دارد را بررسی کنیم. درخواست R1 دریافت میشود. یک نمونهی آزاد هم وجود دارد.
درخواست R1 کامل میشود. درخواستهای R2 و R3 نیز میرسند. R2 به یک نمونهی آزاد تخصیص داده میشود و R3 به یک نمونهی جدید نیاز دارد. نمونهی جدید در این فرآیند ایجاد میشود.
هنگامیکه سرور مشغول اجرای R2 و R3 است، درخواستهای R4، R5 و R6 نیز میرسند. یک نمونهی جدید برای R4 ایجاد میشود. ظرفیت اولین فرآیند پر میشود و سرور باید یک فرآیند جدید برای میزبانی درخواستهای جدید ایجاد کند. پس دومین فرآیند با یک نمونهی جدید ایجاد میشود و درخواست R5 به این نمونه اختصاص مییابد. درخواست R6 تا هنگامیکه اجازهی ایجاد 4 نمونه در هر فرآیند را بدهیم، باید منتظر بماند.
پیکربندی فرآیند جداسازی
حالا که نحوهی کارکرد فرآیند جداسازی را یاد گرفتید، باید جداسازی را پیکربندی و تنظیم کنیم. ArcGIS Server Manager را بازکنید و روی یکی از سرویسها کلیک کنید. روی سربرگ Processes کلیک کنید. از قسمت Specify Isolation Settings گزینهی Low Isolation یا High Isolation را انتخاب کنید. اگر Low Isolation را انتخاب کنید، میتوانید تعداد نمونههای هر فرآیند را در فیلد Instances per process تغییر دهید.
بازیابی
سیستمعامل بهصورت دورهای حافظه را تجزیه و تحلیل و عیب یابی میکند و عملیات یکپارچه سازی defragmentation را برای بهینهسازی اجرای فرآیندها انجام میدهد. با این حال، سیستمعامل قسمت ورودی یک حافظهی تخصیص یافته را مدیریت و نگهداری نمیکند. ArcGIS for Server گزینهای برای بازیابی پیکربندی فرآیند جداسازی بهصورت دورهای فراهم کرده است این کار برای کمک به حفظ عملکرد و مقاومت سیستمعامل است. در سربرگ Processes میتوان فاصلهی زمانی بازیابی را تغییر داد. همچنین گزینهی Periodically check and repair data connections for idle instances نیز فراهم شده است. سرور با این گزینه، نمونههای idle را جهت اتصال موفقیت آمیز به پایگاه داده بهصورت دورهای بررسی و تغییر میدهد. بهتر است این گزینه را غیرفعال کنید زیرا بار اضافی روی GIS سرورها ایجاد میکند. پیکربندی pooling که قبلاً انجام دادیم برای پاک کردن نمونههای idle کافی است؛ اما اگر میخواهید این گزینه را فعال کنید، اندازهی فاصلهی زمانی را بیشتر از یک ساعت در نظر بگیرید تا اتصالات غیر ضروری به پایگاه داده ایجاد نشوند.
Caching
Caching یکی از موثرترین ابزارهای بهینهسازی برای کاهش زمان پاسخگویی سرویسها است. هنگامیکه درخواست خاصی انجام میشود، بیشتر زمان GIS سرور صرف اتصال به پایگاه داده میشود تا عملیاتی مانند شاخص گذاری، جستجو، بازیابی رکوردها، geoprocessing، تصویرسازی و تبدیل نقشه به تصویر را در پایگاه داده انجام دهد و نتایج را برگرداند. همهی این عملیات به پایگاه داده مربوط میشوند حالا اگر عامل پایگاه داده را حذف کنیم، زمان پردازش به شدت کاهش مییابد. اینجا است که مفهوم Caching مطرح میشود. اگر نقشه را به چند کاشی تصویری با مقیاس مشخص تبدیل کنیم و آنها را روی هارددیسکی که GIS سرور در آنجا قرار دارد، ذخیره کنیم به سادگی میتوانیم روی این مجموعه کاشیها شاخصگذاری کنیم تا این کاشیها بدون اتصال به پایگاه داده بازیابی شوند. Caching میتواند زمان پردازش را حدود 80% کاهش دهد و درنتیجه تعداد درخواستهایی که با موفقیت کامل شدهاند، افزایش مییابند. Caching نه تنها پردازش درخواستهای سرویس را بهینه میکند بلکه تعداد جستجوهای پایگاه داده را کاهش میدهد و به جستجوهای با اولویت بالا واکنش بیشتری دارد. مطمئناً Caching بدون عیب نیست. ذخیرهی تصاویری با مقیاسهای مختلف جهت جستجوهای مختلف، به ذخیره سازی دقیقی نیاز دارد. انجام یک Caching خوب، مهم است و بسته به اندازهی پایگاه داده به حداقل 10 تا 20 گیگابایت فضای خالی روی هارددیسک نیاز است.
میخواهیم ابزار caching را برای سرویس Building ایجاد کنیم. این سرویس روی سرور وجود ندارد. پس باید این سرویس را ایجاد و منتشر کنیم. فرض کنید که دادههای Buildings را روی CD هایی با مبنای سالیانه گرفته اید. این دادهها را به پایگاه داده منتقل میکنید. با خیال راحت این دادهها را در سرویسی مجهز به ابزار Caching قرار میدهید و به مدت یک سال بدون نیاز به بهروزرسانی از این سرویس استفاده میکنید. پس شروع میکنیم.
ArcMap را بازکنید و کلاس عارضهی Building را از مسیر 7364EN_05_Codes\AGSA\Data\Buildings.gdb به محیط ArcMap اضافه کنید. برای این کلاس عارضه سمبولوژی با فیلد BuildingType اعمال کنید. مقیاس را روی 1:4000 تنظیم خواهید کرد. بدین معنی که کوچک نمایی بیشتر از 4000 کلاس عارضهی Building را غیرقابلنمایش میکند. برای اعمال این محدودیت، روی کلاس عارضهی Building موجود در TOC دو بار کلیک کنید. سربرگ General را بزنید. گزینهی Don’t show layer when zoomed را انتخاب کنید و در فیلد Out beyond عدد 4000 را وارد کنید. OK را بزنید.
سند نقشهای building را بهصورت سرویس نقشهای منتشر کنید. در هنگام انتشار سرویس در پنجرهی Service Editor از سربرگ Caching گزینهی Using tiles from a cache را فعال کنید تا ابزار caching فعال شود. گزینهی tiling scheme سبک و الگویی را ارائه میدهد که سرویس با این الگو کاشی بندی شود. میتوانید از سرویسهای موجود مانند Google Maps استفاده کنید یا حتی میتوانید خودتان یک الگو ایجاد کنید. ولی فعلاً هیچ سرویس مجهزی به ابزار caching وجود ندارد. گزینهی tiling scheme را با مقدار suggest تنظیم میکنیم تا سرور یک الگوی کاشی بندی برای سرویس ما فراهم کند.
پنجرهی Advanced Settings را بازکنید. سرور چهار سطح مقیاس که از 1000 شروع و تا 125 است پیشنهاد میدهد. ما به دو سطح مقیاس 2000 و 3000 نیاز داریم. در کادر متنی Scales عدد 2000 را وارد و سپس دکمهی Add را بزنید. برای سطح مقیاس 3000 نیز به همین ترتیب اقدام کنید. دقت کنید که سرور مقدار فضای حافظهی موردنیاز را برای هر سطح مقیاس محاسبه میکند. قبل از زدن دکمهی Publish باید پایگاه داده را ثبت کنید. تصویر زیر سطح مقیاسهای مختلف را نشان میدهد.
بعد از تکمیل انتشار پیامی مبنی بر انتشار سرویس خواهید دید، ولی caching در حال ایجاد است. caching فرآیندی زمانبر است. GIS سرورها در طول عملیات caching مشغول هستند. تصویر این پیام در زیر آمده است:
ابزارهای geoprocessing راه دیگری برای ایجاد cache در یک سرویس هستند. اگرچه میتوان ایجاد و مدیریت cache را در پنجرهی ArcGIS for ServerManager انجام داد اما توصیه میشود این کار را در ArcCatalog انجام دهید. Caching واقعاً زمانبر است و تقریباً همهی حافظه را مصرف میکند. ArcGIS for Server manager رابط وب است که برخلاف ArcCatalog در مرورگر اجرا میشود. ArcCatalog یک برنامهی مستقل قابل اجرا است که میتواند جلوی عملیات سنگین را بگیرد. ArcCatalog را بازکنید و یک اتصال مدیر (administrator) به سایت سرور ایجاد کنید.
در زیر مراحل ایجاد یک اتصال مدیر آمده است:
- از درخت Catalog گزینهی GIS Servers را بازکنید.
- روی Add ArcGIS Server دو بار کلیک کنید.
- از فرم Add ArcGIS Server گزینهی Administer GIS Server را انتخاب و Next را بزنید.
- در قسمت Server URL آدرس سایت سرور را وارد کنید:http://GIS-SERVER01:6080/arcgis
- نام کاربری و رمز مدیر سایت را وارد کنید و روی Finish کلیک کنید.
- اتصال را به Admin@GIS-SERVER01 تغییر نام دهید.
روی اتصال دو بار کلیک کنید تا فعال شود. لیستی از سرویسها را خواهید دید. حالا باید ArcToolbox را باز کنیم تا ابزار geoprocessing ایجاد کنندهی cache را اجرا کنیم. برای این کار ArcToolBox را بازکنید. گرهی Server Tools را بازکنید. سپس از گرهی Caching لیست ابزارهای caching را خواهید دید. روی ابزار Create Map Service Cache دو بار کلیک کنید.
در فرم Create Map Server Cache در گزینهی Input Service سرویسی را وارد کنید که میخواهید به cache مجهز شود. دکمهی Browse را بزنید و سرویس را پیدا کنید تا این سرویس درون فیلد Input Service قرار گیرد. کادر متنی Service Cache Directory بهطور خودکار پر میشود. اگر به یاد داشته باشید در فصل اول سایت سرور را تنظیم و پیکربندی کردیم و ArcGIS for Server بر اساس پیکربندیهایی که در فصل اول انجام دادید، بهطور خودکار این فیلد را پرمیکند. پوشهی موجود در این کادر متنی، پوشهی خروجی عملیات caching است و جایی است که cache در آنجا ذخیره میشود. حالا نوبت تنظیم سطح مقیاس است. نمیتوان برای همهی مقیاسها cache ایجاد کرد زیرا این کار به فضای نامحدودی نیاز دارد. باید برای مقیاسهایی که به کرات جستجو میشوند، cache ایجاد کرد. سرور در تجزیه و تحلیل سرویسها به شما کمک میکند و مقیاسهای خاصی را برای cache پیشنهاد میدهد. اگر روی مقیاسهای لایههای غیرقابلنمایش، cache ایجاد کنیم، کار بیهودهای است. در قسمت Tiling Scheme گزینهی New را انتخاب کنید و برای Scale Type گزینهی Standard را انتخاب کنید. در فیلد Number of Scales عدد 3 را وارد کنید. سرور سه مقیاس مختلف پیشنهاد میدهد. مقادیر پیشفرض بقیهی گزینههای این پنجره را بپذیرید و OK را کلیک کنید. پیغامی مبنی بر اجرای کامل این ابزار مشاهده میکنید:
اگر میخواهید سرویسهای بیشتری را مجهز به cache کنید، بهتر است خودتان یک الگوی کاشی بندی ایجاد کنید. سپس این الگو را به سرویس اعمال کنید. در این الگو یک فایل XML وجود دارد که شامل مقیاسهای پیشفرض است. فشرده سازی تصویر، اندازهی کاشی و دیگر پارامترها برای ایجاد الگو به کار میروند. با استفاده از ابزار Generate Tile Cache Tiling Scheme میتوانید فایل الگوی کاشی بندی را ایجاد کنید. سپس میتوانید از طرح کاشی XML برای فعال سازی کاشه بندی استفاده کنید.
انتخاب مقیاسهایی که باید به cache مجهز شوند، مهم است. باید بررسی کنید که سرویس بیشتر در چه مقیاسهایی استفاده میشود و آن مقیاسها را cache کنید.
برگرفته از کتاب نصب، اجرا و مدیریت Arc GIS for server
نویسنده: دکتر محمد بافقی زاده
نشر: انتشارات اکادمیک
بدون دیدگاه