View Full Version : سوال: سرریز شدن Session های اوراکل و Down شدن سرور
Saeed_m_Farid
شنبه 16 آذر 1387, 16:30 عصر
سلام
نمیدونم جای این سوال اینجاست یا نه ولی فکر کردم شاید اینجا بشه جواب گرفت اگه جای اشتباهی اومدم منو راهنمایی کنید:اشتباه:
من یه وب سرویس {C#} دارم که وقتی داره به تعداد زیادی درخواست Real time پاسخ میده سمت بانک اطلاعاتی {اوراکل} در مواقع پیک ترافیک Session ها از یه حد مجاز بالاتر میره و پرفورمنس Cpu میره رو 90-100 درصد و هم کلاینتها میخوابن و هم خود اوراکل (وب سرورم هم که بماند :گریه:)...
جزئیات خیلی زیاده نمیدونم اینجا میشه ادامه داد یا نه؟ اگه تا همینجا منو راهنمایی کنید من ادامه میدم ...
ممنون از توجه اساتید
milade
شنبه 16 آذر 1387, 17:11 عصر
سلام
مگه با سشن ها چی کار میکنی؟ چه مقداری داخلش هست؟
در ضمن سشن چه ربطی به بانک داره؟!
(برا اینکه جواب دقیقی بگیری پست دقیقی بده)
موفق باشید
Saeed_m_Farid
شنبه 16 آذر 1387, 17:24 عصر
سلام
قبل همه چی ممنون از توجهت : منظورم از سشن مال اوراکله نه مال وب سرویس ...
خلاصه جزئیات پروژه و مشکل:
وب سرویس : به تعداد زیادی درخواست Real-time داره پاسخ میده {حدودا 32 تا خط E1 که روزای پرترافیک تا 40-50 درصدشون پر میشه} گذشته از این ممکنه درخواستهای دیگه ای وجود هم داشته باشن که حدودا من پیک ترافیک رو 500 تا درخواست Real-time میذارم. برای اینکه برای هر درخواست session جدیدی باز نشود یک کد pool connection از Sun Java گرفته و اونو به C# تبدیل کرده و هر موقع نیاز به کانکشن جدید میشود از این آبجکت یک Instance میگیرم {در صورتی که مایل به دریافت این کد باشید میتونم اونو براتون بفرستم} دلیل اینکار هم اینه که اوراکل session های وب سرویس من رو از بین نمیبره و Inactive نگهشون میداره و به هیچ طریق من نمیتونم از وب سرویسم به اونا دسترسی داشته باشم و یه مدت بعد (که فقط خود اوراکل میدونه) اونا رو kill میکنه و این واسه من دردسر ساز میشه ضمنا استفاده از این آبجکت pool رو اختیاری کردم و میشه برش گردوند (با تغییر گزینه ای در web.config)
کلاینتها : هر کلاینت به 4 خط E1 داره سرویس میده و با یه واسط که با دلفی 2006 نوشته شده دارن از وب سرویسم ،سرویس میگیرن (به علت اینکه RIO تو BCB بیدلیل داخل Thread هام میترکید (حتی پوینترش هم از بین میرفت) و هر جور هم Trace کردم نتونستم دلیلشو بفهمم با خراب شدن RIO تمام استراکتها و متغیرها هم مقادیرشون از بین میرفت بعبارت بهتر برنامه به ... میرفت) یعنی همه رو یکسان کردم هرموقع نیاز به یک ترنزکشن با دیتابیس هست این واسط از BCB یا دلفی فراخوانی میشه و از طریق پایپینگ منتظر میشم تا جواب از وب سرویسم برسه ضمنا در همه فراخوانی های وب سرویس از سمافور استفاده کردم.
بانک اطلاعاتی : اوراکل 9iR2 هست که خدا تا جدول داره ولی من با 17-18 تا جدولی که 3-4 تاشون هم خیلی بزرگ {2-3 میلیون رکورد} هستن کار میکنم. روی این جدولها برای سریعتر شدن عملیاتت ایندکس بسته شده و ویندوز 2003 هم سیستم عاملشه و سعی کردیم تو تنظیمات حداکثر مقدار حافظه ای که میشه به اوراکل اختصاص بدیم .
------------------------------------------------------------------------
مشکل : در مواقعی (مثلا زمان پیک ترافیک یا وقتی که کلاینت جدیدی زیر بار میرود ) تعداد session های اوراکل از یه حد مجاز بالاتر میره و سیستم بهم میریزه و هیچ راهی بجز راه اندازی مجدد سیستم باقی نمیمونه که این کار هم خیلی واسه من گرون تموم میشه ...
واقعا ممنون میشم اگه راهنماییم کنید ...
Saeed_m_Farid
شنبه 16 آذر 1387, 17:34 عصر
ضمنا کارایی که واسه حل مشکل کردم و بهش اشاره نشده : session های وب سرویس رو بردم رو SQL-server و تو IIS تو قسمت application pool 5 تا واسه خودم پولینگ تعریف کردم که بار رو اونا توزیع بشه ...
:ناراحت: نگفتین باید اینجا مطرح میکردم مشکلمو یا جای دیگه بهتر جواب میگیرفتم؟
milade
شنبه 16 آذر 1387, 17:38 عصر
ببخشید ولی این مطلب شما یه جورایی به مبحث ویندوز مربوطه
دوستان چه نظری دارند؟
Saeed_m_Farid
شنبه 16 آذر 1387, 18:00 عصر
آقا میلاد من تا حالا مثل اکثر دوستان به علت کمبود وقت فقط یه استفاده کننده بودم ولی حالا که شماها رو میبینم که چطور سریع و بی چشمداشت دارید کمک میکنید از خودم شرمنده میشم میخوام بگم مرسی از کمکتون...
واقعیتش این سرور فقط به کلاینتای من سرویس نمیده و علت اینکه با صحبت قبلی شما مخالفم اینه که یکی دو ماه سیستم خوب جواب میده بعدشه که اینطور باگها پیش میاد و چون من هم چیز خاصی رو جهت اعمال ترنزکشن با اوراکل لاگ نمیکنم پس یه ارتباطی میتونه با افزونگی و همچین مواردی تو بانک اطلاعاتی داشته باشه اونم فقط تو تهران به علت عظمتش :متعجب: و الا تو شهرای دیگه من همچین مشکل اعصاب خوردکنی ندارم
ضمنا از اساتید کسی میدونه اوراکل رو میشه با بیشتر از 4 گیگ رم تو ویندوز config کرد؟
سرور 16 گیگ رم داره ولی اولا به علت مخدودیت ویندوز و ثانیا به دلیل عدم اطلاع از نحوه config بیشتر از 2 گیگ رم ما فقط از 1.4 گیگ رم داریم استفاده میکنیم..
یه سوال دیگه : یه مقدار اطلاعات در مورد پیکربندی چند تا سرور واسه اوراکل اطلاعات بدین ممنون میشم ...
Saeed_m_Farid
یک شنبه 17 آذر 1387, 00:37 صبح
من هنوز منتظرم از كسايي كه اينجا سابقه دارن ميشه يكي لطف كنه بگه معمولا 1 همچين سوالايي جواب ميگيرن يا نه؟
اگه نه من مرحله به مرحله مطرح كنم!
ممنون اگه جواب بدين ...
mohammad_P
چهارشنبه 04 دی 1387, 12:53 عصر
سلام
به نظر من تنها راه حل شما استفاده از connection pool . این کار بار دیتابیس را خیلی کم می کنه. و برای سایتی که حداقل 2000 کاربر داره، اگر خوب تنظیماتش را انجام بدی، فقط 6 تا connection ایجاد می کنه.
Saeed_m_Farid
پنج شنبه 10 بهمن 1387, 03:02 صبح
سلام
به نظر من تنها راه حل شما استفاده از connection pool . این کار بار دیتابیس را خیلی کم می کنه. و برای سایتی که حداقل 2000 کاربر داره، اگر خوب تنظیماتش را انجام بدی، فقط 6 تا connection ایجاد می کنه.
همونطوريكه عرض كردم من هم قبلا همين كار رو انجام دادم و از سايت Sun يه كلاس جاوا پيدا كردم كه پياده سازي Pool Connection رو گذاشته بود (اينكار واسه جاواكارها نياز نيست چون built-in دارنش) و با هزارتا آمن بالله و thread و poolSize و... از جاوا به #C تبديلش كردم و تو شرايط مختلف تستش كردم و تعداد كانكشنها خيلي پايين اومد ولي دوباره موقع شلوغ شدن به مشكل ذكر شده برميخورم!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.