در این صفحه نحوه بررسی فقدان حافظه پنهان در زمینه اجرای محلی توضیح داده شده است.
این صفحه فرض می کند که شما یک ساخت و/یا آزمایش دارید که با موفقیت به صورت محلی ساخته می شود و برای استفاده از حافظه پنهان راه دور تنظیم شده است، و اینکه می خواهید مطمئن شوید که کش راه دور به طور موثر استفاده می شود.
برای راهنمایی در مورد نحوه بررسی میزان ضربه حافظه پنهان و نحوه مقایسه گزارشهای اجرا بین دو فراخوانی Bazel، به اشکالزدایی بازدیدهای حافظه پنهان از راه دور برای اجرای از راه دور مراجعه کنید. همه چیزهایی که در آن راهنما ارائه شده است، برای ذخیره سازی از راه دور با اجرای محلی نیز اعمال می شود. با این حال، اجرای محلی چالشهای دیگری را نیز به همراه دارد.
بررسی نرخ ضربه حافظه پنهان
بازدیدهای موفقیت آمیز حافظه پنهان از راه دور در خط وضعیت نشان داده می شود، مشابه نرخ بازدید از حافظه پنهان با اجرای از راه دور .
در خروجی استاندارد اجرای Bazel، چیزی شبیه به زیر را مشاهده خواهید کرد:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
این به این معنی است که از 7 اقدام انجام شده، 3 مورد یک ضربه کش از راه دور دریافت کردند و 4 اکشن بازدید از حافظه پنهان نداشتند و به صورت محلی با استفاده linux-sandbox
اجرا شدند. بازدیدهای حافظه پنهان محلی در این خلاصه گنجانده نشده است. اگر 0 فرآیند دریافت می کنید (یا تعداد کمتر از حد انتظار)، bazel clean
و سپس دستور ساخت/تست خود را اجرا کنید.
عیب یابی بازدیدهای حافظه پنهان
اگر نرخ ضربه کش مورد انتظار را دریافت نمی کنید، موارد زیر را انجام دهید:
از ارتباط موفق با نقطه پایانی راه دور اطمینان حاصل کنید
برای اطمینان از برقراری ارتباط موفقیت آمیز ساخت شما با حافظه پنهان از راه دور، مراحل این بخش را دنبال کنید.
خروجی خود را برای هشدارها بررسی کنید
با اجرای از راه دور، عدم صحبت با نقطه پایانی راه دور، ساخت شما را با شکست مواجه می کند. از سوی دیگر، یک ساخت محلی قابل کش اگر نتواند حافظه پنهان را ذخیره کند، شکست نخواهد خورد. خروجی فراخوانی Bazel خود را برای هشدارها بررسی کنید، مانند:
WARNING: Error reading from the remote cache:
یا
WARNING: Error writing to the remote cache:
چنین هشدارهایی با پیام خطایی همراه خواهد شد که جزئیات مشکل اتصال را توضیح می دهد که باید به شما در رفع اشکال کمک کند: به عنوان مثال، نام نقطه پایانی اشتباه تایپ شده یا اعتبارنامه ها به درستی تنظیم نشده است. چنین خطاهایی را بیابید و برطرف کنید. اگر پیام خطایی که مشاهده می کنید اطلاعات کافی را در اختیار شما قرار نمی دهد، سعی کنید
--verbose_failures
را اضافه کنید.مراحل مربوط به عیبیابی بازدیدهای حافظه پنهان برای اجرای از راه دور را دنبال کنید تا مطمئن شوید که فراخوانهای Bazel در حال نوشتن حافظه پنهان شما قادر به دریافت بازدیدهای حافظه پنهان در همان دستگاه و در بین دستگاهها هستند.
مطمئن شوید که فراخوانهای Bazel برای خواندن حافظه پنهان شما میتوانند بازدیدهای حافظه پنهان را دریافت کنند.
آ. از آنجایی که فراخوان های Bazel کش خوانی دارای یک راه اندازی خط فرمان متفاوتی هستند، مراقب باشید تا مطمئن شوید که آنها به درستی برای برقراری ارتباط با حافظه پنهان راه دور تنظیم شده اند. مطمئن شوید که پرچم
--remote_cache
تنظیم شده است و هیچ هشداری در خروجی وجود ندارد.ب اطمینان حاصل کنید که فراخوانهای Bazel در حافظه پنهان، همان اهدافی را ایجاد میکنند که فراخوانهای Bazel در حافظه پنهان مینویسند.
ج همان مراحلی را که برای اطمینان از حافظه پنهان در بین ماشینها انجام میشود، دنبال کنید تا مطمئن شوید که از فراخوانی Bazel ذخیرهسازی حافظه پنهان به فراخوانی Bazel در حافظه پنهان خود میروید.