LSCPU(1) دستورات کاربر LSCPU(1)

lscpu - نمایش اطلاعات مربوط به معماری پردازنده (CPU)

lscpu [گزینه‌ها]

دستور lscpu اطلاعات مربوط به معماری پردازنده را از sysfs، /proc/cpuinfo و هرگونه کتابخانه مختص معماری کاربردی (مانند librtas در Powerpc) جمع‌آوری می‌کند. خروجی دستور را می‌توان برای تجزیه خودکار (parsing) یا برای خوانایی آسان توسط انسان بهینه‌سازی کرد. این اطلاعات برای مثال شامل تعداد پردازنده‌ها، ریسه‌ها (threads)، هسته‌ها، سوکت‌ها و گره‌های NUMA (دسترسی به حافظه غیریکنواخت) است. همچنین اطلاعاتی درباره حافظه‌های پنهان (cache) پردازنده و اشتراک‌گذاری آن‌ها، خانواده، مدل، bogoMIPS، ترتیب بایت‌ها (byte order)، گام/استپینگ (stepping) و نسخه میکروکد (microcode) ارائه می‌شود.

قالب‌بندی خروجی پیش‌فرض در ترمینال ممکن است تغییر کند و احتمالاً برای خوانایی بهتر بهینه‌سازی شود. خروجی‌های غیرترمینالی (مانند لوله‌ها یا پایپ‌ها) هرگز تحت تأثیر این بهینه‌سازی قرار نمی‌گیرند و همیشه در قالب "Field: data\n" خواهند بود. برای مثال از "lscpu | less" برای مشاهده خروجی پیش‌فرض بدون بهینه‌سازی‌ها استفاده کنید.

در محیط‌های مجازی‌سازی‌شده، اطلاعات معماری پردازنده نمایش‌داده‌شده بیانگر پیکربندی سیستم‌عامل مهمان (guest) است که معمولاً با سیستم فیزیکی (میزبان یا host) تفاوت دارد. در معماری‌هایی که از بازیابی اطلاعات توپولوژی فیزیکی پشتیبانی می‌کنند، lscpu همچنین تعداد سوکت‌ها، تراشه‌ها و هسته‌های فیزیکی در سیستم میزبان را نمایش می‌دهد.

گزینه‌هایی که یک جدول خروجی تولید می‌کنند، یک آرگومان اختیاری به صورت list (فهرست) می‌پذیرند. این آرگومان list رشته‌ای از برچسب‌های ستون است که با کاما از هم جدا شده‌اند تا جدول را تنها به ستون‌های مشخص‌شده و به همان ترتیب تعیین‌شده محدود کند. برای دیدن فهرستی از برچسب‌های ستون معتبر از --help استفاده کنید. برچسب‌ها به بزرگی و کوچکی حروف حساس نیستند. همه ستون‌ها در تمام معماری‌ها پشتیبانی نمی‌شوند. اگر ستونی پشتیبانی‌نشده مشخص شود، lscpu ستون را چاپ می‌کند اما هیچ داده‌ای برای آن ارائه نمی‌دهد.

اندازه‌های حافظه پنهان (cache) به عنوان خلاصه‌ای از تمام پردازنده‌ها گزارش می‌شوند. نسخه‌های پیش از v2.34 اندازه‌ها را به ازای هر هسته گزارش می‌کردند، اما این خروجی به دلیل توپولوژی پیچیده پردازنده و نحوه اشتراک‌گذاری حافظه‌های پنهان بین پردازنده‌ها گیج‌کننده بود. برای جزئیات بیشتر درباره حافظه‌های پنهان به --caches مراجعه کنید. از نسخه v2.37 به بعد، lscpu از شناسه‌های حافظه پنهان مطابق با آنچه توسط هسته لینوکس ارائه می‌شود پیروی می‌کند و این شناسه‌ها همیشه از صفر شروع نمی‌شوند.

-a، --all

گنجاندن خطوط مربوط به پردازنده‌های برخط (online) و برون‌خط (offline) در خروجی (پیش‌فرض برای -e). این گزینه تنها می‌تواند همراه با گزینه -e یا -p مشخص شود.

-B، --bytes

چاپ اندازه‌ها بر حسب بایت به جای قالب خوانا برای انسان.

به طور پیش‌فرض، اندازه‌ها با واحدهایی از توان‌های ۱۰۲۴ بایت نمایش داده می‌شوند. اختصارات رسمی این واحدها (KiB، MiB، GiB، ...) سپس تنها با حرف اول آن‌ها خلاصه می‌شوند: K، M، G، ....

-b، --online

محدود کردن خروجی به پردازنده‌های برخط (پیش‌فرض برای -p). این گزینه تنها می‌تواند همراه با گزینه -e یا -p مشخص شود.

-C، --caches[=list]

نمایش جزئیات درباره حافظه‌های پنهان پردازنده. برای جزئیات درباره اطلاعات موجود، خروجی --list-columns را ببینید.

اگر آرگومان list حذف شود، تمام ستون‌هایی که داده‌ای برای آن‌ها موجود است در خروجی دستور گنجانده می‌شوند.

هنگام مشخص کردن آرگومان list، رشته گزینه، علامت مساوی (=) و list نباید حاوی هیچ فاصله خالی (whitespace) باشند. مثال‌ها: -C=NAME,ONE-SIZE یا --caches=NAME,ONE-SIZE.

فهرست پیش‌فرض ستون‌ها را می‌توان در صورتی که فهرست در قالب +list مشخص شود گسترش داد (به عنوان مثال، lscpu -C=+ALLOC-POLICY).

-c، --offline

محدود کردن خروجی به پردازنده‌های برون‌خط. این گزینه تنها می‌تواند همراه با گزینه -e یا -p مشخص شود.

-e، --extended[=list]

نمایش اطلاعات پردازنده در قالب خوانا برای انسان.

اگر آرگومان list حذف شود، ستون‌های پیش‌فرض در خروجی دستور گنجانده می‌شوند. خروجی پیش‌فرض ممکن است تغییر کند.

هنگام مشخص کردن آرگومان list، رشته گزینه، علامت مساوی (=) و list نباید حاوی هیچ فاصله خالی باشند. مثال‌ها: -e=cpu,node یا --extended=cpu,node.

فهرست پیش‌فرض ستون‌ها را می‌توان در صورتی که فهرست در قالب +list مشخص شود گسترش داد (به عنوان مثال، lscpu -e=+MHZ).

-H، --list-columns

فهرست کردن ستون‌هایی که می‌توان با گزینه‌های --extended، --parse و --caches مشخص کرد. می‌توان آن را همراه با --json یا --raw برای دریافت فهرست در قالبی خوانا برای ماشین استفاده کرد.

--hierarchic[=when]

استفاده از زیربخش‌ها در خروجی خلاصه. برای سازگاری با گذشته، حالت پیش‌فرض این است که زیربخش‌ها تنها هنگام خروجی در ترمینال استفاده شوند و در خروجی‌های غیرترمینالی از خروجی مسطح (تخت) استفاده شود. آرگومان اختیاری when می‌تواند never، always یا auto باشد. اگر آرگومان when حذف شود، مقدار پیش‌فرض آن always است.

-J، --json

استفاده از قالب خروجی JSON برای خلاصه پیش‌فرض یا خروجی گسترش‌یافته (نگاه کنید به --extended). برای سازگاری با گذشته، خروجی JSON از رفتار خلاصه پیش‌فرض در خروجی‌های غیرترمینالی پیروی می‌کند که در آن زیربخش‌ها وجود ندارند. همچنین نگاه کنید به --hierarchic.

--output-all

خروجی دادن تمام ستون‌های موجود. این گزینه باید با یکی از گزینه‌های --extended، --parse یا --caches ترکیب شود.

-p، --parse[=list]

بهینه‌سازی خروجی دستور برای تجزیه خودکار (parsing) آسان.

اگر آرگومان list حذف شود، خروجی دستور با نسخه‌های پیشین lscpu سازگار خواهد بود. در این قالب سازگار، از دو کاما برای جداسازی ستون‌های حافظه پنهان پردازنده استفاده می‌شود. اگر هیچ حافظه پنهانی برای پردازنده شناسایی نشود، ستون حافظه پنهان حذف می‌شود. اگر از آرگومان list استفاده شود، ستون‌های حافظه پنهان با دو نقطه (:) از هم جدا می‌شوند.

هنگام مشخص کردن آرگومان list، رشته گزینه، علامت مساوی (=) و list نباید حاوی هیچ فاصله خالی باشند. مثال‌ها: -p=cpu,online,mhz یا --parse=cpu,online,mhz.

فهرست پیش‌فرض ستون‌ها را می‌توان در صورتی که فهرست در قالب +list مشخص شود گسترش داد (به عنوان مثال، lscpu -p=+MHZ).

-r، --raw

تولید خروجی در قالب خام آن. این گزینه فقط برای خروجی‌های --extended، --parse و --caches کاربرد دارد.

-s، --sysroot directory

جمع‌آوری داده‌های پردازنده برای یک نمونه لینوکس غیر از نمونه‌ای که دستور lscpu از آن اجرا شده است. directory مشخص‌شده، ریشه سیستم (system root) نمونه لینوکسی است که باید بررسی شود.

-x، --hex

استفاده از ماسک‌های هگزادسیمال (شانزده‌شانزدهی) برای مجموعه‌های پردازنده (به عنوان مثال "ff"). حالت پیش‌فرض، چاپ مجموعه‌ها در قالب فهرست است (به عنوان مثال 0,1). توجه داشته باشید که پیش از نسخه 2.30، ماسک با پیشوند 0x چاپ می‌شد.

-y، --physical

نمایش شناسه‌های فیزیکی برای تمام ستون‌های دارای عناصر توپولوژی (هسته، سوکت، و غیره). بر خلاف شناسه‌های منطقی که توسط lscpu تخصیص می‌یابند، شناسه‌های فیزیکی مقادیر مختص به پلتفرم هستند که توسط هسته ارائه می‌شوند. شناسه‌های فیزیکی لزوماً یکتا نیستند و ممکن است به صورت متوالی مرتب نشده باشند. اگر هسته نتواند شناسه فیزیکی یک عنصر را بازیابی کند، lscpu نویسه خط پیوند (-) را چاپ می‌کند.

شماره‌های منطقی پردازنده تحت تأثیر این گزینه قرار نمی‌گیرند.

--arm-id[=list]

چاپ فهرستی از پیاده‌سازان (سازندگان) شناخته‌شده هسته‌های ARM و نام‌های خوانا برای انسان آن‌ها.

اگر آرگومانی داده شود، فهرستی از شناسه‌های هسته‌های مجزا و نام‌های آن‌ها برای پیاده‌ساز مشخص‌شده چاپ می‌شود.

--arm-model id

چاپ نام این مدل خاص از هسته. این گزینه نیازمند ارسال --arm-id=id برای مشخص کردن شناسه پیاده‌ساز نیز هست.

--annotate[=when]

افزودن حاشیه‌نویسی (annotation) به نام سرایند هر ستون. این حاشیه‌نویسی می‌تواند به صورت یک راهنمای متنی (tooltip) توسط ترمینال‌هایی که از این ویژگی پشتیبانی می‌کنند نمایش داده شود. آرگومان اختیاری when می‌تواند always، never یا auto باشد. اگر این آرگومان حذف شود، به طور پیش‌فرض روی auto تنظیم می‌شود، به این معنی که حاشیه‌نویسی‌ها فقط زمانی که خروجی به یک ترمینال ارسال می‌شود استفاده خواهند شد.

-h، --help

نمایش متن راهنما و خروج.

-V، --version

نمایش نسخه و خروج.

LSCPU_COLUMNS=

فهرستی از ستون‌های خروجی جداشده با کاما را برای چاپ مشخص می‌کند. تمام ستون‌های فهرست‌شده توسط --list-columns را می‌توان برای گزینه‌های -e و -p استفاده کرد.

LSCPU_CACHES_COLUMNS=

مشابه LSCPU_COLUMNS، با این تفاوت که تنها ستون‌های فهرست‌شده را می‌توان برای گزینه -C استفاده کرد.

LIBSMARTCOLS_DEBUG=all

خروجی اشکال‌زدایی libsmartcols را فعال می‌کند.

LIBSMARTCOLS_DEBUG_PADDING=on

از نویسه‌های فاصله‌گذاری مرئی (visible padding) استفاده می‌کند.

فهرستی از برچسب‌های ستون معتبر را می‌توان با استفاده از گزینه --list-columns نمایش داد.

خروجی پیش‌فرض ممکن است تغییر کند. بنابراین تا جای ممکن باید از استفاده از خروجی پیش‌فرض در اسکریپت‌های خود خودداری کنید.

نمای کلی اولیه مدل‌های پردازنده بر اساس روش‌های اکتشافی (heuristic) است و تفاوت‌هایی مانند نام مدل پردازنده و شناسه‌های پیاده‌ساز را در نظر می‌گیرد. در برخی موارد (غیرعادی)، ممکن است پردازنده‌ها در پرچم‌ها (flags) یا BogoMIPS تفاوت داشته باشند، اما این تفاوت‌ها در نمای کلی lscpu نادیده گرفته می‌شوند.

گاهی اوقات در Xen Dom0، هسته داده‌های نادرست گزارش می‌دهد.

در ماشین‌های مجازی، تعداد هسته‌ها به ازای هر سوکت و غیره ممکن است نادرست باشد.

Cai Qian <qcai@redhat.com>, Karel Zak <kzak@redhat.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>

chcpu(8)

برای گزارش باگ‌ها، از ردیاب مشکلات https://github.com/util-linux/util-linux/issues.

دستور lscpu بخشی از بسته util-linux است که می‌تواند از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دریافت شود.

2026-09-02 util-linux 2.42.3