AstekHPC

Linux

نظارت و مدیریت JOB

چندین دستور مفید وجود دارد که به شما اجازه می دهد وضعیت job خود را بررسی، بر روند انجام یک job در حال اجرا نظارت و آمار عملکرد job خود را جمع آوری نمایید. همچنین می توانید در صورت لزوم یک job  را حذف کنید.

 

 

وضعیت job های موجود در صف

شما می توانید با استفاده از دستورات qstat و showq صف های دسته ای را کنترل و وضعیت job خود را بررسی کنید. همچنین یک فرمان برای دریافت تخمین بسیار نامطمئن از زمان شروع job شما وجود دارد. در این بخش همچنین دلایل این سوال که چرا یک job ممکن است مدت زمان طولانی در صف انتظار قرار بگیرد، شرح داده می شود و به صورت کوتاه اینکه چگونه زمان بندی job کار می کند، توضیح داده خواهد شد.

 

qstat

برای بررسی وضعیت jobهای خود از دستور qstat استفاده نمایید. شما می توانید وضعیت job خود را که آیا در صف قرار دارد و یا در حال اجرا است، به همراه اطلاعاتی در مورد منابع درخواست شده مشاهده کنید. اگر job  در حال اجرا است می توانید زمان سپری شده و منابع مورد استفاده را ببینید.

در اینجا چند نمونه برای کاربر usr1234 و job   شماره 123456 وجود دارد.

به خودی خود، qstatتمام job های موجود در سیستم را لیست می کند:

 

qstat

 

دستورات به منظور:

لیست کردن تمام jobهای متعلق به یک کاربر خاص:

qstat -u usr1234

لیست کردن وضعیت یک job خاص، در قالب استاندارد یا متناوب (مفیدتر!):

qstat 123456
qstat -a 123456

دریافت تمام جزئیات مربوط به یک job خاص (وضعیت کامل):

qstat -f 123456

 

 

showq

دستور showq لیست اطلاعات job را از نقطه نظر زمانبند نشان می دهد.job ها با توجه به وضعیت آنها گروه بندی می شوند: در حال اجرا، بیکار و یا مسدود شده.

دستور زیر را به منظور لیست کردن همه job ها در سیستم وارد کنید :

showq

لیست همه jobها متعلق به یک کاربر خاص را نمایش میدهد(-u ممکن است با دیگران ترکیب شود):

showq -u usr1234

 

Idle job  (بیکار) : jobهایی هستند که واجد شرایط بوده و در لیست اولویت اجرا قرار دارند. توجه داشته باشید که ممکن است ترتیب اولویت در طول زمان تغییر کند. همچنین توجه داشته باشید که اگر منابع بلافاصله برای اجرای job با بالاترین اولویت ("backfill") در دسترس نباشد، jobها ممکن است خارج از نوبت اجرا شوند. این کار به گونه ای انجام می شود که شروع job با بالاترین اولویت را به تاخیر نمی اندازد.

به منظور نمایش لیست جزئیات در مورد idle jobs دستور زیر را بزنید :

showq -i

 

showq -i
showq -i -u usr1234

 

Blocked jobs (مسدود شده) : jobهایی هستند که در حال حاضر واجد شرایط برای اجرا نیستند. دلایل متعددی وجود دارد که job ممکن است مسدود شود.

• اگر یک کاربر یا گروه، محدود به استفاده از تعداد خاصی job یا هسته باشد، بقیه jobهای آنها مسدود خواهند شد. این job ها با اتمام کار jobهای در حال اجرا، آزاد می شوند.

• اگر یک کاربر وابستگی هایی میان jobها تنظیم کند، یا شرایطی اعمال کند که قبل از اجرای job باید برآورده شود، تا زمانی که وابستگی یا شرایط آنها برآورده نشوند، jobها مسدود می مانند.

• با استفاده از دستور qhold jobid  می توانید job خود را نگه دارید.

 • در موارد نادر، یک خطا در سیستم باعث می شود که job با  وضعیت  “BatchHold” مسدود شود. اگر یکی از jobهای خود را در این حالت مشاهده کردید، با پشتیبانی کلاستر تماس بگیرید.

لیست jobهای مسدود شده:

showq -b

 

showq -b -u usr1234

 

showstart

دستور showstart برآوردی برای زمان شروع job می دهد. متاسفانه، این برآوردها به هیچ وجه دقیق نیستند، مگر برای job با بالاترین اولویت که در صف قرار دارد. اگر زمان نشان داده شده دقیقا نیمه شب دو یا سه روز در آینده باشد، بی معنی است. در غیر این صورت برآورد ممکن است به صورت اعداد غیر واقعی نمایش داده شود.

showstart 123456 

 

 

چرا job من در حال اجرا نیست؟

دلایل زیادی وجود دارد که ممکن است job شما طولانی تر از آنچه فکر می کنید در صف انتظار بماند. در اینجا برخی از این دلایل آورده شده: 

• بار کاری سیستم بالا است. این موضوع برای همه خسته کننده است.

• خرابی سیستم برنامه ریزی شده است و jobها در حالت انتظار نگه داشته می شوند. پیام روز، که هر بار که شما وارد می شوید، یا پیام های سیستم ارسال شده در صفحه اخبار AstekHPC را بررسی کنید.

• شما یا گروهتان چند روز گذشته از منابع زیادی استفاده کرده اید، و باعث می شود اولویت jobهایتان کاهش یابد ("سیاست منصفانه").

• شما یا گروهتان در حال استفاده از حداکثر تعداد پردازنده یا تعداد job  در حال اجرای مجاز هستید، در این وضعیت، job شما نگه داشته شده است.

• پروژه شما دارای یک توازن بزرگ RU (واحد منابع- resource unit) منفی است.

• job شما خواستار تخصیص منابع خاص، مانند حافظه بزرگ یا مجوزهای نرم افزاری خاص است.

• job شما نیازمند منابع زیادی است، که برای دسترسی به این منابع، زمان زیادی لازم است.

• job شما خواستار منابع ناسازگار یا غیر موجود است و در این حالت هرگز نمیتواند اجرا شود.

•درخواست شما بدون توجه به خصوصیات گره هایی که مجاز به درخواست آنها هستید ارسال شده است، برای مثال با درخواست mem = 25GB در یک سیستم که بیشتر گره ها دارای 24 گیگابایت هستند.

•job به دلیل مشکلات سیستم (بسیار نادر است) بدون نیاز به نگهداری دسته ای، بیهوده در انتظار نگه داشته می شود.

 

Priority, backfill, and debug reservations

اولویت ، یک تابع پیچیده از بسیاری از عوامل است ، از جمله تعداد پردازنده ها و مدت زمان درخواست شده، مدت زمان انتظار job و چگونگی محاسبات دیگر توسط کاربر و گروه آنها که طی چند روز گذشته انجام شده است.

در طول هر تکرار زمان بندی، زمانبند job با بالاترین اولویت را که در حال حاضر نمی تواند اجرا شود شناسایی می کند و در آینده برای آن یک زمان پیدا و رزرو می کند. هنگامی که این کار انجام می شود، زمانبند می تواند بدون تاثیر بر زمان شروع job با بالاترین اولویت، صف را با بسیاری از jobها با اولویت پایین تر پر کند .

این کار به طور کلی استفاده از سیستم را بالا نگه می دارد در حالی که هنوز هم اجازه زمان چرخش معقول برای jobها با اولویت بالا را می دهد. jobهای کوتاه و jobهایی که درخواست منابع کمی دارند، ساده ترین راه برای پر کردن فضای موجود هستند.

تعداد کمی از گره ها عمدتا برای اهداف اشکال زدایی ، در طول روز بوسیله jobها با محدودیت زمانی(walltime limit) یک ساعت یا کمتر، کنار گذاشته می شوند.

 

بررسی یک job در حال اجرا

شما می توانید یک job دسته ای را در حال اجرا کنترل کنید تقریبا همانطور که می توانید برنامه ای را که به صورت تعاملی در حال اجرا است نظارت کنید. دستور qpeekاجازه می دهد تا خروجی ای که به طور معمول در صفحه نمایش شما ظاهر می شود را مشاهده کنید. دستور pdshبه شما این امکان را می دهد که CPU و حافظه ی مورد استفاده توسط job خود را در میان چیزهای دیگر نظارت کنید. این دستورات از گره ورودی (login node) اجرا می شود.

 

qpeek

جریان داده های یک job بر روی لاگ فایلهای stdout  و stderr نوشته می شوند، این داده ها ، همه آن چیزی است که در طول اجرای job بر روی صفحه مانیتور نمایش داده می شوند. این فایل های log ، تا زمانی که job به پایان می رسد در سرور ذخیره می شوند، بنابراین شما نمی توانید آنها را بی درنگ مشاهده کنید .

 

Stdout و Stderr جریان داده های job که به طور معمول بر روی صفحه نشان داده می شوند را در فایل های log می نویسند. این فایل های log ، تا زمانی که job به پایان می رسد در سرور ذخیره می شوند، بنابراین شما نمی توانید آنها را بی درنگ مشاهده کنید .

 

دستور qpeek به شما اجازه می دهد تا محتویات آنها را زیر نظر بگیرید. اگر از خط هدر PBS برای پیوند دادن جریان های stdout و stderr   (#PBS -j oe) استفاده می کنید، دو جریان در خروجی log ترکیب می شوند.

 

در اینجا چند مثال برای job 123456 وجود دارد. می توانید از فلگ -e با هر یک از آنها برای گرفتن error log  به جای output log استفاده کنید. (اگر از  "#PBS -j oe" استفاده کنید، این گزینه قابل اجرا نیست)

برای نمایش محتویات فعلی خروجی (stdout) برای job 123456:

qpeek 123456

  

برای نمایش محتویات فعلی خطا (stderr) برای job 123456:

qpeek -e 123456

 

 به منظور نمایش فقط آغاز ("head ") output log  برای job 123456:

qpeek -h 123456

 

برای نمایش فقط پایان ("tail ") output log  برای job 123456: 

qpeek -t 123456

 

برای نمایش پایانoutput log  و نگه داشتن listening  ("tail -f") - خاتمه دادن با Ctrl-C:

qpeek -f 123456

 

pdsh

اگر شما عادت به نظارت بر برنامه های خود با استفاده از topیا psیا چیزی شبیه آن را داشته باشید، ممکن است دستور pdshمفید باشد. pdshمخفف “Parallel Distributed Shell” است. این دستور به شما اجازه می دهد یک فرمان را به صورت موازی در تمام گره های اختصاص داده شده به job خود اجرا کنید، همراه با نتایج نمایش داده شده بر روی صفحه نمایش. این عمدتا به همراه job موازی مورد استفاده قرار می گیرد. pdshدر درجه اول بر روی Oakley استفاده می شود.

نکته : دستورالعمل هایی که اجرا می کنید باید سریع و ساده باشند تا از دخالت در job جلوگیری شود. به ویژه اگر job شما با jobهای دیگر بر روی یک گره به صورت اشتراکی اجرا می شوند.

 

دو دستور مفید که اغلب با pdshمورد استفاده قرار می گیرند عبارتند از uptime ، که بار سیستم را نمایش می دهد، و freeکه میزان استفاده از حافظه را می دهد ؛ صفحات manرا نیز برای این دستورات مشاهده کنید. بعلاوه گزینه هایی برای top وجود دارد که با pdshقابل استفاده است.

از آنجا که این دستور یک دستور موازی است، خروجی برای گره های مختلف در یک حالت غیر قابل استناد ظاهر می شود.

 

نمونه هایی برای job 123456 در Oakley (مشابه برای Ruby و Owens):

pdsh -j 123456 uptime
pdsh -j 123456 free -mo
pdsh -j 123456 top -b -n 1 -u usr1234

  

qstat

دستور qstatاطلاعاتی در مورد پردازنده، حافظه و walltime مورد استفاده برای jobهای در حال اجرا فراهم می کند. با استفاده از فلگ -a ، زمان سپری شده (wall time) را به صورت ساعت و دقیقه نشان می دهد. بدون فلگ، زمان استفاده شده (Time Used)، یک معیار حسابداری، در ساعت ها، دقیقه ها و ثانیه ها را نشان داده می شود. با فلگ  -f منابع مورد استفاده jobها، همراه با اطلاعات جمع آوری شده از تمام گره هایی که job  بر روی آنها در حال اجرا است را نشان می دهد.

مثال ها:

qstat -a 123456
qstat -f 123456

 

مدیریت jobهای شما

حذف یک job

ممکن است مواقعی پیش بیاید که بخواهید یکی از job های خود را از صف PBS حذف کنید. شاید شما محدودیت منابع را نادرست تنظیم کرده باشید، از کپی یک فایل ورودی غفلت شده باشد، یا دستورات نادرست یا اشتباه در فایل دسته ای وجود داشته باشد، یا شاید برنامه زمان بیشتری طول بکشد تا اجرا شود (حلقه بی نهایت).

 

دستور PBS برای حذف یک job دسته ای qdelاست. این job در هر دو حالتی که job در حالت اجرا باشد و یا در صف قرار داشته باشد،  بکار می رود.

مثال :

qdel 123456

اگر نتوانید یکی از jobهای خود را حذف کنید ممکن است به علت مشکل سخت افزاری یا crash نرم افزار سیستم باشد. در این صورت باید با پشتیبانی تماس بگیرید.

 

 

تغییر یک job صف شده

شما می توانید ویژگی های خاصی از job خود را در حالی که در صف قرار دارد با استفاده از فرمان qalter تغییر دهید. این دستور می تواند زمانی مفید باشد که می خواهید یک تغییردر job خود ایجاد کنید بدون اینکه جای خود را در صف از دست بدهید. در بخش اجرایی اسکریپت و بعد از شروع job، نمیتوانید تغییری ایجاد کنید.

syntax  به صورت زیر است:

qalter [options ...] jobid

 

آرگومان options شامل یک یا چند دستورالعمل PBS در قالب گزینه های خط فرمان می باشد.

به عنوان مثال، برای تغییر میزان walltime  در job 123456 تا 5 ساعت و ارسال ایمیل زمانی که job به پایان می رسد (فقط):

qalter -l walltime=5:00:00 -m e 123456

 

 

Hold کردن جابی که در صف قرار دارد

اگر می خواهید از اجرای job جلوگیری کنید، اما آن را در صف نگه دارید، می توانید اینکار را با استفاده از دستور qhold انجام دهید. job در وضعیت block شده باقی می ماند تا زمانی که آن را با دستور qrls آزاد کنید. عمل hold می تواند مفید باشد، برای مثال اگر شما نیاز به تغییر فایل ورودی برای یک job داشته باشید، اما نمی خواهید مکان خود را در صف از دست بدهید.

مثال :

qhold 123456
qrls 123456

 

آمارهای job

دستورالعمل هایی وجود دارد که می توانید درbatch script  خود برای جمع آوری آمار یا اطلاعات عملکرد job بکار ببرید.

 

date

دستور dateتاریخ و زمان فعلی را چاپ می کند. میتوانید این دستور را در ابتدا و انتهای بخش اجرایی اسکریپت خود به منظور اندازه گیری تقریبی از زمان صرف شده در job بکار ببرید.

 

time

ابزار time برای اندازه گیری عملکرد یک فرمان واحد استفاده می شود. این دستور می تواند برای فرآیندهای سریال یا موازی استفاده شود. عبارت /usr/bin/time را به ابتدای یک دستور در batch script اضافه کنید :

/usr/bin/time myprog arg1 arg2

نتیجه در فرمت زیر ارائه می شود :

1-  user time (زمان cpu که برای اجرای برنامه شما صرف شده)

2- system time (صرف زمان شده cpu توسط برنامه شما در تماس های سیستم)

3- elapsed time - زمان سپری شده (wallclock)

4- ٪ CPU  مورد استفاده

5- حافظه، آمار pagefault  و swap

6- آمار I/O

این نتایج به فایل (error log) ورودی خطای job افزوده می شود. 

توجه: از مسیر کامل “”برای دریافت تمام اطلاعات نشان داده شده استفاده کنید.

 

ja

ja  ابزار حسابداری job، اطلاعات حسابداری job از جمله زمان CPU، حافظه، حافظه مجازی، و walltime استفاده شده را در داخل یک job PBS چاپ می کند. این اطلاعات همچنین در هنگامی که یک job به پایان می رسد به صورت ایمیل (در صورت درخواست ایمیل) ارسال میشود. هنگامی که این job در حال اجرا است، همان اطلاعات با دستور qstat -f در دسترس است.

 

Login
HPCLab Media
HPCLab RSS

Site encyclopedia section

In this section, you will find articles and information you need.

Paper Categories
نرم افزار پایش کلاسترهای محاسباتی

این نرم افزار میزان استفاده از منابع محاسباتی و همچنین کار های در حال اجرا بر روی کلاستر را پایش میکند. به منظور نصب نسخه موبایل استک ابتدا JuiceSSH نصب شود.

Download More

PuTTY

PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port.

Download More

Winscp

WinSCP is a free and open-source SFTP, FTP, WebDAV and SCP client for Microsoft Windows. Its main function is secure file transfer between a local and a remote computer.

Download More

VNC Viewer

VNC offers a deceptively simple service it allows you to view and control a remote system as though seated next to it, wherever you are.

Download More

NEWS

ابر رایانه واتسون جان زن مبتلا به سرطان را نجات داد

با این که توانایی این کامپیوتر عظیم برای شناسایی بیماری‌‌های مختلف و آنالیز علائم حیاتی بیماران بسیار بالا و احتمالا از هر پزشکی بر روی کره‌ی زمین دقیق‌تر است، اما مطمئنا حداقل تا چندین سال دیگر شاهد به کار گرفته شدن هوش مصنوعی و کامپیوترهای قدرتمندی نظیر ابر رایانه واتسون در مراکز درمانی و بیمارستان‌ها نخواهیم بود. علاوه بر این برای این که این نوع از سیستم‌های مبتنی بر AI بتوانند یک بیماری را ...

چین قدرتمندترین ابر کامپیوتر جهان را ساخت

بحث ابر کامپیوترها همواره برای عاشقان دنیای تکنولوژی و فناوری جذاب و در رتبه اول قرار داشته است. کامپیوتر از آغاز شروع به کار خود مسیر پر پیچ و خم را طی کرده‌اند تا به لپ‌تاپ‌های امروزی که وزنی کمتر از 2 کیلوگرم داشته و دارای سرعت پردازشی بسیار خوبی هستند، رسیده‌اند. جالب است بدانید کامپیوترهای اولیه حجمی به‌اندازه یک اتاق 20 متری را اشغال می‌کردند و برای روشن شدن نیازمند انرژی الکتریکی بسیار ...

IBM موفق به ساخت تراشه ای شد که می تواند مانند انسان فکر کند !

این تراشه که ترونورث نامیده می‌شود، هنوز نیازمند برنامه‌ای است که بتواند از عملکرد آن پشتیبانی کند زیرا عملکرد آن با تراشه‌های سنتی که هنوز در کامپیوترهای مدرن کاربردی هستند، متفاوت است. در پردازشگرهای سنتی، پردازشگر و حافظه از یکدیگر مجزا هستند، اما در مدل به‌هم‌پیوسته ترونورث، پردازش داده‌ها در زمانی مشابه تراشه‌های سنتی از کارایی بیشتری برخوردارند. در این تراشه به‌جای صفر و یک‌های دوتایی،‌ واحد‌های محاسباتی را اسپایک&zwnj ...

فوجيتسو و فروش يک ابر کامپيوتر 20 ترافلاپي به کانن

کاربران ابر کامپیوتر فوجیتسو را اغلب موسسه‌های تحقیقاتی و علمی تشکیل می‌دهند. اولین نمونه آن، به دانشگاه توکیو فروخته شد و سال گذشته هم اداره هواشناسی مرکزی تایوان، میزبان یکی از FX10 های ساخت فوجیتسو بود. به گفته سخن‌گوی شرکت، فروش یک نمونه تجاری به کانن نه اولین، بلکه یکی از مهم‌ترین معام.   ...

IBM موفق به ساخت تراشه ای شد که می تواند مانند انسان فکر کند !

این تراشه که ترونورث نامیده می‌شود، هنوز نیازمند برنامه‌ای است که بتواند از عملکرد آن پشتیبانی کند زیرا عملکرد آن با تراشه‌های سنتی که هنوز در کامپیوترهای مدرن کاربردی هستند، متفاوت است. در پردازشگرهای سنتی، پردازشگر و حافظه از یکدیگر مجزا هستند، اما در مدل به‌هم‌پیوسته ترونورث، پردازش داده‌ها در زمانی مشابه تراشه‌های سنتی از کارایی بیشتری برخوردارند. در این تراشه به‌جای صفر و یک‌های دوتایی،‌ واحد‌های محاسباتی را ...

درباره ما

شرکت دانش بنیان رایانش سریع هزاره ایرانیان به منظور طراحی، ساخت و گسترش کاربردهای رایانش سریع در علوم مختلف پایه گذاری شده است. این شرکت به دنبال ایجاد بستری با ظرفیت محاسباتی و ذخیره سازی بالا مبتنی بر CPU و GPU می باشد تا بتواند از آن طریق سرویسهای متعددی را به محققین، اساتید، دانشجویان تحصیلات تکمیلی و سایر علاقه مندان این حوزه ارائه نماید.


خدمات این شرکت در حوزه های زیر ارائه می گردد :

  • - رایانش سریع و ابری (HPC & Cloud Computing)
  • - کلان داده و پردازش داده های حجیم (Big Data Analysis)
  • - طراحی و پیاده سازی کلاسترهای محاسباتی مبتنی بر Linux
  • - طراحی و اجرای پروژه های انبار داده Data Warehouse
  • - مجازی سازی و اجرای شبکه های مبتنی بر نرم افزار (Software Defined Network)
شرکت دانش بنیان رایانش سریع هزاره ایرانیان