در کرنل لینوکس NUMA چیست؟ به زبان ساده
فرض کنید کامپیوتر شما یه خونه آپارتمانیه. توی این خونه چندتا اتاق (گره) هست که هر کدوم تخت خواب (پردازنده) و کمد (حافظه) دارن.
تو معماری معمولی، همه تختها و کمدها توی یه اتاق بزرگ هستن. این میتونه برای کسایی که توی همون اتاق زندگی میکنن (برنامههایی که به حافظه و پردازش زیادی نیاز دارن) خوب باشه، ولی میتونه برای کسایی که توی اتاقهای دیگه زندگی میکنن (برنامههایی که به حافظه و پردازش کمتری نیاز دارن) مشکلساز باشه.
با توجه با این NUMA مثل اینه که یه سری از تختها و کمدها رو به اتاقهای دیگه ببریم. این کار به کسایی که توی همون اتاق زندگی میکنن کمک میکنه که سریعتر به تختها و کمدهاشون دسترسی داشته باشن، بدون اینکه منتظر بمونن بقیه که توی اتاقهای دیگه هستن ازشون استفاده کنن.
مثلا فرض کنید یه برنامه پایگاه داده دارین که به حافظه و پردازش زیادی نیاز داره. تو یه سیستم NUMA میتونین این برنامه رو طوری تنظیم کنین که توی یه گره اجرا بشه که حافظه و پردازندههای بیشتری داره. این کار به برنامه کمک میکنه که سریعتر به اطلاعات و قدرت پردازشی که نیاز داره دسترسی پیدا کنه، و میتونه عملکردش رو خیلی بهتر کنه.
در کل NUMA میتونه سرعت کار رو با کم کردن زمان دسترسی به حافظه، مخصوصاً برای برنامههایی که به حافظه زیاد نیاز دارن، بهتر کنه.
DevTwitter | <Linuxor/>
➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
فرض کنید کامپیوتر شما یه خونه آپارتمانیه. توی این خونه چندتا اتاق (گره) هست که هر کدوم تخت خواب (پردازنده) و کمد (حافظه) دارن.
تو معماری معمولی، همه تختها و کمدها توی یه اتاق بزرگ هستن. این میتونه برای کسایی که توی همون اتاق زندگی میکنن (برنامههایی که به حافظه و پردازش زیادی نیاز دارن) خوب باشه، ولی میتونه برای کسایی که توی اتاقهای دیگه زندگی میکنن (برنامههایی که به حافظه و پردازش کمتری نیاز دارن) مشکلساز باشه.
با توجه با این NUMA مثل اینه که یه سری از تختها و کمدها رو به اتاقهای دیگه ببریم. این کار به کسایی که توی همون اتاق زندگی میکنن کمک میکنه که سریعتر به تختها و کمدهاشون دسترسی داشته باشن، بدون اینکه منتظر بمونن بقیه که توی اتاقهای دیگه هستن ازشون استفاده کنن.
مثلا فرض کنید یه برنامه پایگاه داده دارین که به حافظه و پردازش زیادی نیاز داره. تو یه سیستم NUMA میتونین این برنامه رو طوری تنظیم کنین که توی یه گره اجرا بشه که حافظه و پردازندههای بیشتری داره. این کار به برنامه کمک میکنه که سریعتر به اطلاعات و قدرت پردازشی که نیاز داره دسترسی پیدا کنه، و میتونه عملکردش رو خیلی بهتر کنه.
در کل NUMA میتونه سرعت کار رو با کم کردن زمان دسترسی به حافظه، مخصوصاً برای برنامههایی که به حافظه زیاد نیاز دارن، بهتر کنه.
DevTwitter | <Linuxor/>
➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
❤6 4 3
How to Choose a Message Queue_ - ByteByteGo Newsletter.pdf
2.6 MB
#bytebytego #tips #pro_guide
How to Choose a Message Queue
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
How to Choose a Message Queue
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
✍️Afshin HadigolAfshin Hadigol
هِلم یا Helm نجات دهنده شما در Kubernetes !
اگر یه app کوچیک داری و میخوای توی کوبرنتیز deploy کنی kubectl کارتو راه میندازه ولی اگر app یکم بزرگتر بشه دیگه kubectl کارتو راه نمیندازه که هیچ دردسرم میشه برات.🤯
امروز میخوام بگم چرا helm یه ابزاریه که اگر ازش استفاده نکنی علاوه بر این که هرسری که deploy انجام میدی چند ساعت از تایمت رو میریزی تو جوب، ممکنه خطای انسانیم زیاد رخ بده. ⏳
با این سوال شروع کنیم که helm چی هست کلا؟🤔
یه ابزار مدیریت پکیج برای Kubernetes هست که به شما کمک میکنه تا برنامههای Kubernetes رو به طور سادهتر نصب، مدیریت و ارتقا بدید.
حالا سوال بعدی Helm چیکار میکنه و چرا خوبه که از helm استفاده بشه؟
🟢 برنامه های Kubernetes رو به بسته هایی که امکان استفاده دوباره داره تبدیل میکنه و اسمش رو هم میذاره charts. این charts ها فرایند نصب، ارتقا، و مدیریت برنامه هارو ساده میکنن. (ممکنه که برات سوال شده باشه که helm chart چی هست حالا؟ helm chart یه بستهبندی از تمام فایلهای لازم برای نصب و راه اندازی برنامههای Kubernetes هست)
🟢 توی فرایندهای خودکارسازی CICD خیلی دستتو میگیره و سرعتتو بالا میبره.
همینطور که گفتم helm chart برای اینه که :
🔵بتونیم برنامه هارو بسته بندی کنیم و توی k8s راه اندازیش کنیم.
🔵 اجازه میده charts هایی که ایجاد کردی رو version بزنی و بین ورژن های مختلف جابه جا بشی.
🔵 میتونی charts هایی که نوشتی رو توی hub که helm درست کرده بذاری و با بقیه به اشتراک بذاریش، یا از charts هایی که قبلا نوشته شده و تو hub قرار داره استفاده کنی.
درواقع charts از یکسری فایل و directory تشکیل شده که هرکدوم برای چیز خاصی درنظر گرفته شدن:⬇️
🟡 ستون فقرات هلم چارت chart.yaml هست و دیتاهایی مثل نام، ورژن، یه سری توضیحات و dependency توی خودش ذخیره میکنه.
🟡 مقدارهای پیشفرضمون رو توی فایل values.yaml تعریف میکنیم و template هارو باهاش مقداردهی میکنیم.
🟡 یه دایرکتوری داریم به اسم template که از یه سری فایل template نگه داری میکنه مثل pods یا deployment که مقداردهی نشدن و با استفاده از متغییرهایی که تویvalues.yaml هستن مقداردهی میشن. ⚙️
✅ نکته : فایل ها و directoryهای دیگه اییم هستن که من ننوشتم، برای مطالعه ی بیشتر حتما به سایتش یه سر بزنین: https://lnkd.in/dhDdKC2x
شماهم اگر ابزاری بهتر از helm میشناسین حتما معرفی کنید، دمتون گرم 🔥
➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
هِلم یا Helm نجات دهنده شما در Kubernetes !
اگر یه app کوچیک داری و میخوای توی کوبرنتیز deploy کنی kubectl کارتو راه میندازه ولی اگر app یکم بزرگتر بشه دیگه kubectl کارتو راه نمیندازه که هیچ دردسرم میشه برات.🤯
امروز میخوام بگم چرا helm یه ابزاریه که اگر ازش استفاده نکنی علاوه بر این که هرسری که deploy انجام میدی چند ساعت از تایمت رو میریزی تو جوب، ممکنه خطای انسانیم زیاد رخ بده. ⏳
با این سوال شروع کنیم که helm چی هست کلا؟🤔
یه ابزار مدیریت پکیج برای Kubernetes هست که به شما کمک میکنه تا برنامههای Kubernetes رو به طور سادهتر نصب، مدیریت و ارتقا بدید.
حالا سوال بعدی Helm چیکار میکنه و چرا خوبه که از helm استفاده بشه؟
🟢 برنامه های Kubernetes رو به بسته هایی که امکان استفاده دوباره داره تبدیل میکنه و اسمش رو هم میذاره charts. این charts ها فرایند نصب، ارتقا، و مدیریت برنامه هارو ساده میکنن. (ممکنه که برات سوال شده باشه که helm chart چی هست حالا؟ helm chart یه بستهبندی از تمام فایلهای لازم برای نصب و راه اندازی برنامههای Kubernetes هست)
🟢 توی فرایندهای خودکارسازی CICD خیلی دستتو میگیره و سرعتتو بالا میبره.
همینطور که گفتم helm chart برای اینه که :
🔵بتونیم برنامه هارو بسته بندی کنیم و توی k8s راه اندازیش کنیم.
🔵 اجازه میده charts هایی که ایجاد کردی رو version بزنی و بین ورژن های مختلف جابه جا بشی.
🔵 میتونی charts هایی که نوشتی رو توی hub که helm درست کرده بذاری و با بقیه به اشتراک بذاریش، یا از charts هایی که قبلا نوشته شده و تو hub قرار داره استفاده کنی.
درواقع charts از یکسری فایل و directory تشکیل شده که هرکدوم برای چیز خاصی درنظر گرفته شدن:⬇️
🟡 ستون فقرات هلم چارت chart.yaml هست و دیتاهایی مثل نام، ورژن، یه سری توضیحات و dependency توی خودش ذخیره میکنه.
🟡 مقدارهای پیشفرضمون رو توی فایل values.yaml تعریف میکنیم و template هارو باهاش مقداردهی میکنیم.
🟡 یه دایرکتوری داریم به اسم template که از یه سری فایل template نگه داری میکنه مثل pods یا deployment که مقداردهی نشدن و با استفاده از متغییرهایی که تویvalues.yaml هستن مقداردهی میشن. ⚙️
✅ نکته : فایل ها و directoryهای دیگه اییم هستن که من ننوشتم، برای مطالعه ی بیشتر حتما به سایتش یه سر بزنین: https://lnkd.in/dhDdKC2x
شماهم اگر ابزاری بهتر از helm میشناسین حتما معرفی کنید، دمتون گرم 🔥
➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
How to Choose a Replication Strategy.pdf
1.6 MB
#bytebytego #tips #pro_guide
How to Choose a Replication Strategy
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
How to Choose a Replication Strategy
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍3 3
متاسفانه من الان خبر دار شدم Hashi Corp توسط IBM خریداری شده. و یعنی احتمالا محصولات اوپن سورسشون قرار هست کلوز سورس بشه.
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍2🕊2🍾2
What Happens When a SQL is Executed_.pdf
963.4 KB
#bytebytego #tips #pro_guide
What Happens When a SQL is Executed?
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
What Happens When a SQL is Executed?
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🍾5👍1
Gopher Academy
Top 8 Cache Eviction Strategies. 👇👇👇👇👇 ➖➖➖➖➖➖➖➖ 🕊 @gopher_academy | @GolangEngineers
op 8 Cache Eviction Strategies.
.
.
🔹 LRU (Least Recently Used)
LRU eviction strategy removes the least recently accessed items first. This approach is based on the principle that items accessed recently are more likely to be accessed again in the near future.
🔹 MRU (Most Recently Used)
Contrary to LRU, the MRU algorithm removes the most recently used items first. This strategy can be useful in scenarios where the most recently accessed items are less likely to be accessed again soon.
🔹 SLRU (Segmented LRU)
SLRU divides the cache into two segments: a probationary segment and a protected segment. New items are initially placed into the probationary segment. If an item in the probationary segment is accessed again, it is promoted to the protected segment.
🔹 LFU (Least Frequently Used)
LFU algorithm evicts the items with the lowest access frequency.
🔹 FIFO (First In First Out)
FIFO is one of the simplest caching strategies, where the cache behaves in a queue-like manner, evicting the oldest items first, regardless of their access patterns or frequency.
🔹 TTL (Time-to-Live)
While not strictly an eviction algorithm, TTL is a strategy where each cache item is given a specific lifespan.
🔹 Two-Tiered Caching
In Two-Tiered Caching strategy, we use an in-memory cache for the first layer and a distributed cache for the second layer.
🔹 RR (Random Replacement)
Random Replacement algorithm randomly selects a cache item and evicts it to make space for new items. This method is also simple to implement and does not require tracking access patterns or frequencies.
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
.
.
🔹 LRU (Least Recently Used)
LRU eviction strategy removes the least recently accessed items first. This approach is based on the principle that items accessed recently are more likely to be accessed again in the near future.
🔹 MRU (Most Recently Used)
Contrary to LRU, the MRU algorithm removes the most recently used items first. This strategy can be useful in scenarios where the most recently accessed items are less likely to be accessed again soon.
🔹 SLRU (Segmented LRU)
SLRU divides the cache into two segments: a probationary segment and a protected segment. New items are initially placed into the probationary segment. If an item in the probationary segment is accessed again, it is promoted to the protected segment.
🔹 LFU (Least Frequently Used)
LFU algorithm evicts the items with the lowest access frequency.
🔹 FIFO (First In First Out)
FIFO is one of the simplest caching strategies, where the cache behaves in a queue-like manner, evicting the oldest items first, regardless of their access patterns or frequency.
🔹 TTL (Time-to-Live)
While not strictly an eviction algorithm, TTL is a strategy where each cache item is given a specific lifespan.
🔹 Two-Tiered Caching
In Two-Tiered Caching strategy, we use an in-memory cache for the first layer and a distributed cache for the second layer.
🔹 RR (Random Replacement)
Random Replacement algorithm randomly selects a cache item and evicts it to make space for new items. This method is also simple to implement and does not require tracking access patterns or frequencies.
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🍾5👍2
هکاتون The Open League
▪️بنیاد TON هکاتون The Open League را راهاندازی کرد: مسیری سریع برای ورود به Open League با بیش از 150 میلیون دلار پاداش و مشوقهای مختلف برای کاربران.
▪️هکاتون از آوریل تا ژوئن اجرا میشود و صندوق جایزهی آن 2 میلیون دلار است.
▪️شرکتکنندگان اپلیکیشن و موارد استفاده جدید را برای دنیای Web3 شامل GameFi و شبکههای اجتماعی Web3 و DeFi و تجارت الکترونیک در TON و Telegram میسازند.
چرا در این هکاتون شرکت کنیم؟
▪️صندوق جایزهی 2 میلیون دلاری.
▪️مسیری سریع برای شرکت در The Open League با حمایت 50،000 Toncoin جهت تقویت استخر نقدینگی توکن شما.
▪️بهترین پروژهها میتوانند از صندوق 500،000$ ارائه شده توسط TON Ventures کمک مالی دریافت کنند.
▪️فرصتی برای ملاقات با اعضای بنیاد TON و مدیران صندوقهای سرمایهگذاری خطرپذیر در TON در طول Gateway در شهر دبی.
پروژههای شرکتکننده در فصل آزمایشی Open League شاهد رشد سه رقمی در تعداد کاربران فعال، هولدرهای توکنها، ارزش بازار و حجم معاملات در صرافیهای غیرمتمرکز TON بودهاند. این در حالیست که تنها 1 میلیون Toncoin پاداش برای فصل آزمایشی در نظر گرفته شده بود. در فصل آینده، جوایز 30 برابر افزایش خواهند داشت: 30 میلیون Toncoin پاداش برای 3 ماه.
شما و تیمتان میتوانید در رقابت با دیگران برنده شوید؟ وقت سازندگی در TON فرا رسیده!
همین الان ثبت نام کنید!
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
▪️بنیاد TON هکاتون The Open League را راهاندازی کرد: مسیری سریع برای ورود به Open League با بیش از 150 میلیون دلار پاداش و مشوقهای مختلف برای کاربران.
▪️هکاتون از آوریل تا ژوئن اجرا میشود و صندوق جایزهی آن 2 میلیون دلار است.
▪️شرکتکنندگان اپلیکیشن و موارد استفاده جدید را برای دنیای Web3 شامل GameFi و شبکههای اجتماعی Web3 و DeFi و تجارت الکترونیک در TON و Telegram میسازند.
چرا در این هکاتون شرکت کنیم؟
▪️صندوق جایزهی 2 میلیون دلاری.
▪️مسیری سریع برای شرکت در The Open League با حمایت 50،000 Toncoin جهت تقویت استخر نقدینگی توکن شما.
▪️بهترین پروژهها میتوانند از صندوق 500،000$ ارائه شده توسط TON Ventures کمک مالی دریافت کنند.
▪️فرصتی برای ملاقات با اعضای بنیاد TON و مدیران صندوقهای سرمایهگذاری خطرپذیر در TON در طول Gateway در شهر دبی.
پروژههای شرکتکننده در فصل آزمایشی Open League شاهد رشد سه رقمی در تعداد کاربران فعال، هولدرهای توکنها، ارزش بازار و حجم معاملات در صرافیهای غیرمتمرکز TON بودهاند. این در حالیست که تنها 1 میلیون Toncoin پاداش برای فصل آزمایشی در نظر گرفته شده بود. در فصل آینده، جوایز 30 برابر افزایش خواهند داشت: 30 میلیون Toncoin پاداش برای 3 ماه.
شما و تیمتان میتوانید در رقابت با دیگران برنده شوید؟ وقت سازندگی در TON فرا رسیده!
همین الان ثبت نام کنید!
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🍾3
https://github.com/microsoft/MS-DOS
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - microsoft/MS-DOS: The original sources of MS-DOS 1.25, 2.0, and 4.0 for reference purposes
The original sources of MS-DOS 1.25, 2.0, and 4.0 for reference purposes - microsoft/MS-DOS
👍9❤1
How to design a secure web API access for your website_.pdf
1.2 MB
#bytebytego #tips #pro_guide
How to design a secure web API access for your website?
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
How to design a secure web API access for your website?
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🍾3👍2❤1
How_Uber_Uses_Integrated_Redis_Cache_to_Serve_40M_Reads_Second_.pdf
2.8 MB
#bytebytego #tips #pro_guide
How Uber Uses Integrated Redis Cache to Serve 40M Reads Second?
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
How Uber Uses Integrated Redis Cache to Serve 40M Reads Second?
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🍾5🎉1
HTTP 1.0 -_ HTTP 1.1 -_ HTTP 2.0 -_ HTTP 3.0 (QUIC).pdf
467.3 KB
#bytebytego #tips #pro_guide
HTTP 1.0 -_ HTTP 1.1 -_ HTTP 2.0 -_ HTTP 3.0 (QUIC)
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
HTTP 1.0 -_ HTTP 1.1 -_ HTTP 2.0 -_ HTTP 3.0 (QUIC)
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
❤3 3🍾1
🥂یه سری موقعیت شغلی دورکاری
🌞 https://jobinja.ir/companies/raznameh-group/jobs
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🌞 https://jobinja.ir/companies/raznameh-group/jobs
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍5🍾1
Kubernetes_ When and How to Apply It.pdf
4.3 MB
#bytebytego #tips #pro_guide
Kubernetes When and How to Apply It
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
Kubernetes When and How to Apply It
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍2🍾2 1
سلام دوستان، یه منبع بهتون معرفی میکنم که کلی tips کوچیک و باحال ارائه داده که بهتون کمک میکنه کد گولنگی بهتری بنویسید.
Go Practical Tips
https://github.com/func25/go-practical-tips/blob/main/tips.md
#gocasts | Hossein
➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
Go Practical Tips
https://github.com/func25/go-practical-tips/blob/main/tips.md
#gocasts | Hossein
➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍4🍾4