.TH ATOPGPUD 8 "September 2025" "Linux" .SH "نام (NAME)" atopgpud \- دیمن مانیتورینگ پردازنده گرافیکی برای atop .SH "خلاصه دستور (SYNOPSIS)" .P .B atopgpud [\-v] .PP .SH "توضیحات (DESCRIPTION)" دیمن .I atopgpud اطلاعات آماری را از تمام پردازنده‌های گرافیکی NVIDIA در سیستم فعلی جمع‌آوری می‌کند. با نرخ نمونه‌برداری یک ثانیه، آمار هر پردازندهٔ گرافیکی را در سطح سراسری (سطح سیستم) و به ازای هر فرایند نگهداری می‌کند. هنگامی که .I atopgpud روی سیستم هدف فعال باشد، .I atop (با پرچم \-k) از طریق یک سوکت دامنه یونیکس (UNIX domain socket) به این دیمن متصل می‌شود و آمار پردازندهٔ گرافیکی را برای هر بازه دریافت می‌کند. .PP رویکرد جمع‌آوری تمامی آمار پردازنده گرافیکی در یک دیمن مجزا ضروری است، چرا که درایور NVIDIA تنها درصد مشغولیت GPU در ثانیهٔ گذشته را ارائه می‌دهد. فرض کنید که .I atop با بازهٔ ۱۰ دقیقه‌ای اجرا شود و درصد مشغولیت پردازنده گرافیکی را مستقیماً از درایور NVIDIA دریافت کند؛ در این صورت درصد مشغولیت ثانیهٔ آخر را به جای میانگین درصد مشغولیت در طول ۶۰۰ ثانیه منعکس خواهد کرد. بنابراین، دیمن .I atopgpud درصد مشغولیت GPU را هر ثانیه دریافت کرده و آن را در یک شمارنده انباشته می‌کند که می‌تواند توسط .I atop به‌طور منظم بازیابی شود. همین رویکرد برای سایر آمارهای پردازنده گرافیکی نیز اعمال می‌شود. .PP نیازی به اجرای دیمن .I atopgpud با دسترسی‌های root وجود ندارد. .PP توجه داشته باشید که برخی از آمارهای GPU تنها برای انواع خاصی از پردازنده‌های گرافیکی ارائه می‌شوند. برای پردازنده‌های گرافیکی قدیمی‌تر یا ساده‌تر، مقدار \-1 برای شمارنده‌هایی که نگهداری نمی‌شوند بازگردانده می‌شود. در خروجی .I atop این شمارنده‌ها به صورت 'N/A' نشان داده می‌شوند. .PP هنگامی که هیچ پردازنده گرافیکی NVIDIA در سیستم هدف یافت نشود، .I atopgpud بلافاصله با کد خروج 0 خاتمه می‌یابد. .PP پیام‌های ثبت وقایع از طریق دیمن .I rsyslogd با امکان (facility) 'daemon' نوشته می‌شوند. با پرچم \-v (حالت پرگو / verbose)، .I atopgpud پیام‌های اشکال‌زدایی (debug) را نیز ثبت می‌کند. .PP .SH "نصب (INSTALLATION)" دیمن .I atopgpud به زبان Python نوشته شده است، بنابراین یک مفسر Python 3 باید روی سیستم هدف نصب باشد. این دیمن برای ارتباط با درایور Nvidia به ماژول پایتون .I pynvml وابسته است. این ماژول را می‌توان با دستور .I pip یا .I pip3 نصب کرد و معمولاً تحت نام .I nvidia-ml-py بسته‌بندی شده است. .br ماژول .I pynvml یک پوشش پایتون پیرامون کتابخانه مشترک .I libnvidia-ml است که آن هم باید نصب شود. .PP پس از نصب بستهٔ .I atop دیمن .I atopgpud به‌طور خودکار آغاز به کار نمی‌کند و همچنین سرویس آن به‌طور پیش‌فرض فعال نخواهد شد. هنگامی که می‌خواهید این سرویس را (به‌صورت دائمی) فعال کنید، دستورهای زیر را (به عنوان root) وارد کنید: .PP .B \ systemctl enable atopgpu .br .B \ systemctl start atopgpu .PP .SH "شرح رابط (INTERFACE DESCRIPTION)" فرایندهای کلاینت می‌توانند با استفاده از نام سوکت انتزاعی 'atopgpud_nvidia' به دیمن .I atopgpud متصل شوند. متعاقباً، چنین کلاینتی می‌تواند یک درخواست دو بایتی ارسال کند که شامل یک بایت کد درخواست و به دنبال آن یک بایت عدد صحیح به عنوان شماره نسخهٔ API است. .br کد درخواست در بایت اول می‌تواند 'T' باشد تا اطلاعات مربوط به انواع GPUهای نصب‌شده در سیستم را به دست آورد (معمولاً تنها یک بار درخواست می‌شود). .br کد درخواست می‌تواند 'S' باشد تا تمامی مقادیر شمارندهٔ آماری را به دست آورد (برای هر بازه درخواست می‌شود). .PP پاسخ دیمن با یک عدد صحیح ۴ بایتی آغاز می‌شود. بایت اول شماره نسخهٔ API است که قالب پاسخ را تعیین می‌کند، در حالی که سه بایت بعدی نشان‌دهندهٔ طول رشتهٔ پاسخ بعدی هستند (ترتیب big endian). .br در رشته‌های پاسخ، نویسهٔ '@' اطلاعات سطح سیستم یک GPU خاص را معرفی می‌کند و نویسهٔ '#' اطلاعات سطح فرایند مربوط به آن GPU را معرفی می‌کند. .br برای جزئیات بیشتر در مورد مفهوم شمارنده‌ها در رشتهٔ پاسخ، لطفاً به کد منبع مراجعه کنید. .PP .SH "همچنین ببینید (SEE ALSO)" .B atop(1), .B atopsar(1), .B atoprc(5), .B netatop(4), .B netatopd(8), .B atopacctd(8) .br .B https://www.atoptool.nl .SH "نویسنده (AUTHOR)" Gerlof Langeveld (gerlof.langeveld@atoptool.nl)