Forwarded from ⚝ (امیرحسین پناهےفر)
میخواستم بفهمم بدون bottleneck واقعی، سیستمم چند تا درخواست I/O در ثانیه (req/sec یا IOPS) میتونه هندل کنه.
خیلی وقتها اعداد روی جعبه SSD یا وبسایت فقط تو شرایط آزمایشگاهی معنا دارن، ولی وقتی خودت با ابزارهایی مثل fio تست میگیری، تازه میفهمی تو دنیای واقعی چی میگذره.
تستهایی که گرفتم اینطوری بود
اول Sequential Read/Write با بلاکهای 1MB برای سنجش throughput واقعی که حدود 2.3GB/s
دوم Random 4K Read/Write برای سنجش IOPS واقعی که چند دهها هزار IOPS بدون bottleneck محسوس
سوم تستهای Async I/O با io_uring و iodepth بالا برای دیدن تأثیر parallelism بود.
چیزایی که برام جالب بود در سطح فایلسیستم، NVMe تونست نزدیک به 2.3 گیگابایت بر ثانیه بنویسه.
وقتی از io_uring استفاده کردم، مصرف CPU تقریباً نصف شد اما IOPS افزایش پیدا کرد این یعنی async I/O فقط سریعتر نیست، هوشمندتر هم هست.
با iodepth=32، تونستم queue همیشه پر نگه دارم بدون افت محسوس در latency
متوسط Latency واقعا فریبدهندهست Latency میانگین من حدود 0.2ms بود، اما در سطح %99 حدود 0.8ms همین اختلاف نشون میده چطور queue depth یا context switching میتونه tail latency رو خراب کنه.
در workload واقعی، %99 latency مهمتر از میانگینه.
یادمون باشه Bottleneck همیشه از دیسک نیست
خیلی وقتها گلوگاه از دیسک نمیاد از CPU context switching یا sync I/O هم میاد.
حتی دیدم وقتی threadها روی NUMA node اشتباه بودن، latency تا %30 بالا رفت.
واقعاً Locality مهمه.
در رابطه با فایل سیستم تیونینگ روی EXT4 و XFS تست گرفتم
با noatime و discard=async در random I/O فایل سیستم EXT4 بهتر بود
در sequential write هم XFS پایدارتر عمل کرد
پس فقط دیسک مهم نیست فایلسیستم هم بخشی از performance story هستش.
ابزارها و سیستم من :)
Tools: fio, iostat, iotop, nvme-cli, perf
OS: Linux with 6.17.2-arch1-1 (I use Arch btw👩💻 )
Disk: PCIe NVMe SSD
خیلی وقتها اعداد روی جعبه SSD یا وبسایت فقط تو شرایط آزمایشگاهی معنا دارن، ولی وقتی خودت با ابزارهایی مثل fio تست میگیری، تازه میفهمی تو دنیای واقعی چی میگذره.
تستهایی که گرفتم اینطوری بود
اول Sequential Read/Write با بلاکهای 1MB برای سنجش throughput واقعی که حدود 2.3GB/s
دوم Random 4K Read/Write برای سنجش IOPS واقعی که چند دهها هزار IOPS بدون bottleneck محسوس
سوم تستهای Async I/O با io_uring و iodepth بالا برای دیدن تأثیر parallelism بود.
چیزایی که برام جالب بود در سطح فایلسیستم، NVMe تونست نزدیک به 2.3 گیگابایت بر ثانیه بنویسه.
وقتی از io_uring استفاده کردم، مصرف CPU تقریباً نصف شد اما IOPS افزایش پیدا کرد این یعنی async I/O فقط سریعتر نیست، هوشمندتر هم هست.
با iodepth=32، تونستم queue همیشه پر نگه دارم بدون افت محسوس در latency
متوسط Latency واقعا فریبدهندهست Latency میانگین من حدود 0.2ms بود، اما در سطح %99 حدود 0.8ms همین اختلاف نشون میده چطور queue depth یا context switching میتونه tail latency رو خراب کنه.
در workload واقعی، %99 latency مهمتر از میانگینه.
یادمون باشه Bottleneck همیشه از دیسک نیست
خیلی وقتها گلوگاه از دیسک نمیاد از CPU context switching یا sync I/O هم میاد.
حتی دیدم وقتی threadها روی NUMA node اشتباه بودن، latency تا %30 بالا رفت.
واقعاً Locality مهمه.
در رابطه با فایل سیستم تیونینگ روی EXT4 و XFS تست گرفتم
با noatime و discard=async در random I/O فایل سیستم EXT4 بهتر بود
در sequential write هم XFS پایدارتر عمل کرد
پس فقط دیسک مهم نیست فایلسیستم هم بخشی از performance story هستش.
ابزارها و سیستم من :)
Tools: fio, iostat, iotop, nvme-cli, perf
OS: Linux with 6.17.2-arch1-1 (I use Arch btw
Disk: PCIe NVMe SSD
اَحپِفاِیْسم 🍋
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
فوری :
اگه از IDE کرسر برای کد زدن استفاده میکنید بروزرسانی های جدید رو حتما دنبال کنید و تا حد ممکن کد های محرمانه و خصوصی باهاش نزدید این IDE بر پایه Chromium های قدیمی و آسیب پذیر ساخته شده توی یه نمونه، پژوهشگران نشون دادن که آسیبپذیری CVE‑2025‑7656 (یه Integer Overflow توی موتور V8) رو میشه از طریق یه لینک مخرب توی Cursor اجرا کرد و منجر به کرش شدن اپلیکیشن یا حتی اجرای کد دلخواه بشه. منتظر آپدیت جدید باشید Chromium قدیمی پر از باگه حتی احتمال اینه کدتون مورد سوء استفاده هم قرار گرفته باشه هست.
@Linuxor
اگه از IDE کرسر برای کد زدن استفاده میکنید بروزرسانی های جدید رو حتما دنبال کنید و تا حد ممکن کد های محرمانه و خصوصی باهاش نزدید این IDE بر پایه Chromium های قدیمی و آسیب پذیر ساخته شده توی یه نمونه، پژوهشگران نشون دادن که آسیبپذیری CVE‑2025‑7656 (یه Integer Overflow توی موتور V8) رو میشه از طریق یه لینک مخرب توی Cursor اجرا کرد و منجر به کرش شدن اپلیکیشن یا حتی اجرای کد دلخواه بشه. منتظر آپدیت جدید باشید Chromium قدیمی پر از باگه حتی احتمال اینه کدتون مورد سوء استفاده هم قرار گرفته باشه هست.
@Linuxor
Forwarded from Linuxor ?
این دستگاه یه اینترنت آفلاینه...
در واقع کل منابع آموزشی متنی که حجم زیادی ندارن توشه از ویکی پدیا بگیر تا خانآکادمی و نقشه جهان و کتاب های کلاسیک گوتنبرگ و کلی مطالب پزشکی و وردپرس و سامانه های آموزشی مجازی و ... همه رو جمع کردن و ریختن توش خودش هم بر پایه رزبری پای ساخته شده که میشه بهش وصل شد ازش استفاده کرد.
هزینه ساختش چیزی حدود 80 دلار در میآد و برای مناطق روستایی که اینترنت ندارن خیلی مفید میتونه باشه
www.bgr.com/1998047/raspberry-pi-internet-in-a-box
@Linuxor
در واقع کل منابع آموزشی متنی که حجم زیادی ندارن توشه از ویکی پدیا بگیر تا خانآکادمی و نقشه جهان و کتاب های کلاسیک گوتنبرگ و کلی مطالب پزشکی و وردپرس و سامانه های آموزشی مجازی و ... همه رو جمع کردن و ریختن توش خودش هم بر پایه رزبری پای ساخته شده که میشه بهش وصل شد ازش استفاده کرد.
هزینه ساختش چیزی حدود 80 دلار در میآد و برای مناطق روستایی که اینترنت ندارن خیلی مفید میتونه باشه
www.bgr.com/1998047/raspberry-pi-internet-in-a-box
@Linuxor
Forwarded from Linuxor ?
چت جی پی تی بالاخره اون مرورگر هوشمندش که بهش میگی فلان کارو کن، برات انجام میده رو داد بیرون، فعلا نسخه macOs در دسترسه
openai.com/index/introducing-chatgpt-atlas
@Linuxor
openai.com/index/introducing-chatgpt-atlas
@Linuxor
Forwarded from ⚝ (امیرحسین پناهےفر)
به واسطه دوستم با Cilium تازه آشنا شدم و چیزای جدید یاد گرفتم، مخصوصاً درباره شبکه و امنیت در k8s، بهویژه در سناریو مولتی کلاستر.
فهمیدم که Cilium با استفاده از eBPF، جریان ترافیک شبکه رو مستقیم داخل کرنل مدیریت میکنه و این یعنی دیگه نیازی به iptablesهای پیچیده نیست و latency خیلی پایین میاد. جالب اینجاست که علاوه بر کنترل سطح شبکه مثل IP و پورت، میشه سیاستها رو روی HTTP، REST و gRPC هم اعمال کرد و خیلی دقیقتر امنیت و دسترسیها رو تنظیم کرد.
همچنین قابلیت تعریف Network Policy مدرن باعث میشه بتونی قوانین دقیق روی سرویسها، namespaceها و workloadها اعمال کنی و حتی محدودیتها رو روی متدها و مسیرهای HTTP تنظیم کنی. بخش Multi-Cluster ClusterMesh برام خیلی جذاب بود، چون به کمکش میشه چند کلاستر رو به هم وصل کرد و سرویسها رو بدون نیاز به VPN یا tunnel پیچیده، cross-cluster قابل دسترسی کرد. این موضوع واقعاً فهم اینکه شبکههای چندکلاستری چطور کار میکنن رو سادهتر میکنه و مدیریتشون راحتتر میشه.
یکی دیگه از نکات خفن Cilium، ابزار observability به اسم Hubble هست که میشه جریان شبکه بین پادها، latency، packet drop و حتی درخواستهای سطح L7 رو مشاهده کرد. این باعث میشه بفهمی دقیقاً چه اتفاقی بین سرویسها میفته و دیباگ کردن خیلی سادهتر بشه. در نهایت، چون همه چیز داخل کرنل انجام میشه، overhead خیلی پایین و عملکرد عالیه، مخصوصاً وقتی چند سرویس یا کلاستر همزمان داری.
این آشنایی باعث شد واقعاً بفهمم چقدر Cilium میتونه ابزار پیشرفته و کاربردی برای شبکه، امنیت و observability تو Kubernetes، حتی در سناریوهای Multi-Cluster، باشه، بدون اینکه مجبور باشی همه چیز رو از صفر بسازی یا پیچیدگیهای سنتی شبکه رو تحمل کنی.
فهمیدم که Cilium با استفاده از eBPF، جریان ترافیک شبکه رو مستقیم داخل کرنل مدیریت میکنه و این یعنی دیگه نیازی به iptablesهای پیچیده نیست و latency خیلی پایین میاد. جالب اینجاست که علاوه بر کنترل سطح شبکه مثل IP و پورت، میشه سیاستها رو روی HTTP، REST و gRPC هم اعمال کرد و خیلی دقیقتر امنیت و دسترسیها رو تنظیم کرد.
همچنین قابلیت تعریف Network Policy مدرن باعث میشه بتونی قوانین دقیق روی سرویسها، namespaceها و workloadها اعمال کنی و حتی محدودیتها رو روی متدها و مسیرهای HTTP تنظیم کنی. بخش Multi-Cluster ClusterMesh برام خیلی جذاب بود، چون به کمکش میشه چند کلاستر رو به هم وصل کرد و سرویسها رو بدون نیاز به VPN یا tunnel پیچیده، cross-cluster قابل دسترسی کرد. این موضوع واقعاً فهم اینکه شبکههای چندکلاستری چطور کار میکنن رو سادهتر میکنه و مدیریتشون راحتتر میشه.
یکی دیگه از نکات خفن Cilium، ابزار observability به اسم Hubble هست که میشه جریان شبکه بین پادها، latency، packet drop و حتی درخواستهای سطح L7 رو مشاهده کرد. این باعث میشه بفهمی دقیقاً چه اتفاقی بین سرویسها میفته و دیباگ کردن خیلی سادهتر بشه. در نهایت، چون همه چیز داخل کرنل انجام میشه، overhead خیلی پایین و عملکرد عالیه، مخصوصاً وقتی چند سرویس یا کلاستر همزمان داری.
این آشنایی باعث شد واقعاً بفهمم چقدر Cilium میتونه ابزار پیشرفته و کاربردی برای شبکه، امنیت و observability تو Kubernetes، حتی در سناریوهای Multi-Cluster، باشه، بدون اینکه مجبور باشی همه چیز رو از صفر بسازی یا پیچیدگیهای سنتی شبکه رو تحمل کنی.
اَحپِفاِیْسم 🍋
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 در PHPStorm نسخه 2024 باگ عجیبی دارد که اگر از منابع دیگر کدها را کپی و پیست کنید باعث بهم ریختگی کدها می شود و ساختارش بهم می ریزد.
@TheRaymondDev
@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل ( MΞ)
Forwarded from IRCF | اینترنت آزاد برای همه
This media is not supported in your browser
VIEW IN TELEGRAM
اینکه بهانه میارن اگر اسراییل حمله نمیکرد اینترنت آزاد میشد، یعنی هربار که چاخان کردیم و عملی نشد، بندازیم گردن یکی دیگه ...
🔍 ircf.space
@ircfspace
🔍 ircf.space
@ircfspace
Forwarded from IRCF | اینترنت آزاد برای همه
Forwarded from Gopher Academy
🔵 عنوان مقاله
How Slow is Channel-Based Iteration?
🟢 خلاصه مقاله:
این مقاله پرسش «تکرار مبتنی بر channel در Go چقدر کند است؟» را با یک مثال عملی بررسی میکند. تیم Dolt سه الگو را مقایسه کرده است: دو رویکرد مبتنی بر channel و یک روش iterator کشیدنی با iter.Pull. نتیجه کلی این است که هرچند channelها برای همزمانی، مدیریت فشار برگشتی و جداسازی تولیدکننده/مصرفکننده عالیاند، اما در حلقههای محاسباتیِ حساس به کارایی، سربار همگامسازی، زمانبندی goroutine و تخصیصها محسوس میشود. در مقابل، iter.Pull (و حلقههای ساده روی دادههای خطی) معمولاً سبکتر و بهینهترند. توصیه نهایی: وقتی به همزمانی واقعی نیاز دارید از channel استفاده کنید؛ برای مسیرهای داغ که فقط پیمایش میخواهند، سراغ iterator کشیدنی یا حلقههای ساده بروید.
#Go #Golang #Channels #Iteration #Performance #Benchmarking #Concurrency #Dolt
🟣لینک مقاله:
https://golangweekly.com/link/175626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How Slow is Channel-Based Iteration?
🟢 خلاصه مقاله:
این مقاله پرسش «تکرار مبتنی بر channel در Go چقدر کند است؟» را با یک مثال عملی بررسی میکند. تیم Dolt سه الگو را مقایسه کرده است: دو رویکرد مبتنی بر channel و یک روش iterator کشیدنی با iter.Pull. نتیجه کلی این است که هرچند channelها برای همزمانی، مدیریت فشار برگشتی و جداسازی تولیدکننده/مصرفکننده عالیاند، اما در حلقههای محاسباتیِ حساس به کارایی، سربار همگامسازی، زمانبندی goroutine و تخصیصها محسوس میشود. در مقابل، iter.Pull (و حلقههای ساده روی دادههای خطی) معمولاً سبکتر و بهینهترند. توصیه نهایی: وقتی به همزمانی واقعی نیاز دارید از channel استفاده کنید؛ برای مسیرهای داغ که فقط پیمایش میخواهند، سراغ iterator کشیدنی یا حلقههای ساده بروید.
#Go #Golang #Channels #Iteration #Performance #Benchmarking #Concurrency #Dolt
🟣لینک مقاله:
https://golangweekly.com/link/175626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
How slow is channel-based iteration?
We benchmarked channel-based iterators v. those provided by the iter package and share the results.
Forwarded from Ditty | دیتی
🔺 حرکت جالب Stackoverflow
- اگه از چتجیپیتی و ... استفاده میکنین ولی دلتون پیش Stackoverflow هست، میتونین از سرویس جدید این شرکت استفاده کنین که شباهت زیادی به چتبات های امروزی داره ولی جوابهایی به سبک Stackoverflow میده:
https://stackoverflow.ai
#links
- اگه از چتجیپیتی و ... استفاده میکنین ولی دلتون پیش Stackoverflow هست، میتونین از سرویس جدید این شرکت استفاده کنین که شباهت زیادی به چتبات های امروزی داره ولی جوابهایی به سبک Stackoverflow میده:
https://stackoverflow.ai
#links
Stack Overflow
AI Assist
Stack Overflow | The World’s Largest Online Community for Developers
Forwarded from Linuxor ?
اینجارو ببینید از خنده جر میخورید مدل های هوش مصنوعی رو بهشون 10k دلار دادن و فرستادنشون ترید کنن چت جی پی تی و جمنای افتادن تو ضرر اما دیپ سیک داره سود میکنه 😂😂😂
https://nof1.ai/
@Linuxor
https://nof1.ai/
@Linuxor
Forwarded from Accio
Free software foundation announces librephone project, bringing free and open-source software and drivers to mobile devices. Executive director of FSF metioned:
This is good news, since nearly all of us rely on un-free software when it comes to mobile devices. Now we have hope that we can break free of this corporate chain
Article link
Fireship video regarding this
... this work will take time, but we're used to playing the long game
This is good news, since nearly all of us rely on un-free software when it comes to mobile devices. Now we have hope that we can break free of this corporate chain
Article link
Fireship video regarding this
Forwarded from DevTwitter | توییت برنامه نویسی
این ابزار wkhtmltopdf کد HTML رو به PDF تبدیل میکنه و از خوبیاش هم اینه که headless هست یعنی به چیزی وابسته نیست هم میتونید روی سرور استفادش کنید و باهاش یه وبسایت رو دانلود کنید
https://wkhtmltopdf.org
* این ابزار آرشیو شده
@DevTwitter | <Nimo/>
https://wkhtmltopdf.org
* این ابزار آرشیو شده
@DevTwitter | <Nimo/>
Forwarded from DevTwitter | توییت برنامه نویسی
اگه پنل whm داری احتمالا برات پیش اومده بخوای سرورت رو عوض کنی و ندونی چطوری میخوای همه یوزر هارو یکی یکی انتقال بدی به سرور جدید.
خود WHN یه اپشنی داره به اسم cpmove که توی این اسکریپت ازش استفاده کردم و فقط کافی اطلاعات سرور مقصد و یوزر رو بدی تا توی چند ثانیه برات انتقال بده.
https://gist.github.com/mobinjavari/c5cb9d9ac93e135b6d80bff45387ccdd
@DevTwitter | <MoBin/>
خود WHN یه اپشنی داره به اسم cpmove که توی این اسکریپت ازش استفاده کردم و فقط کافی اطلاعات سرور مقصد و یوزر رو بدی تا توی چند ثانیه برات انتقال بده.
https://gist.github.com/mobinjavari/c5cb9d9ac93e135b6d80bff45387ccdd
@DevTwitter | <MoBin/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔹این سه کتاب فارسی از مقدماتیترین منابع لینوکس هستند و پیشنیاز بسیاری از مباحث این حوزه محسوب میشوند. برای کاربران مبتدی و تازهکار که قصد ورود به دنیای لینوکس را دارند، پیشنهاد میشود.
🔸فرمت فایلها به صورت pdf
🔸تمام رنگی
🔹کتاب مفاهیم اولیه لینوکس
11 فصل و 300 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب تکنولوژی های متن باز
8 فصل 270 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب راهنمای جامع linux Essentials
11 فصل 250 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
دریافت کتابها
https://learninghive.ir
🔸فرمت فایلها به صورت pdf
🔸تمام رنگی
🔹کتاب مفاهیم اولیه لینوکس
11 فصل و 300 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب تکنولوژی های متن باز
8 فصل 270 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
🔹کتاب راهنمای جامع linux Essentials
11 فصل 250 صفحه
🔻نمونه کتاب به همراه فهرست کامل کتاب
دریافت کتابها
https://learninghive.ir
Forwarded from Hamed
درود دوستان
این مدت اخیر احتمالا ریپو های منو دیدین و میدونین که چندتا کتاب برنامه نویسی رو به زبان شیرین فارسی ترجمه کردم.
مطمئناً گیت هاب جای مطالعه کتاب نیست و خسته کننده س برای این کار، پس به سرم زد که کار رو راحت کنم! ایده!
با گیت هاب پیج ترجمه ها رو آنلاین کنم که مطالعه راحت تر باشه.
و بووووومممم!
اینم سایت گیتاب ، Gitab
به زودی pdf همه شون قرار میدم.
لطفاً با دستای خوشگل تون با استار دادن حمایت کنید و به اشتراک بذارید، این ترجمه ها واقعا میتونه به برنامه نویس های جونیور، مید لول ... کمک کنه. هدف؛ بهانه نداشتن برای مطالعه کردن، افزایش منابع فارسی
https://hheydarian.github.io/Gitab/
این مدت اخیر احتمالا ریپو های منو دیدین و میدونین که چندتا کتاب برنامه نویسی رو به زبان شیرین فارسی ترجمه کردم.
مطمئناً گیت هاب جای مطالعه کتاب نیست و خسته کننده س برای این کار، پس به سرم زد که کار رو راحت کنم! ایده!
با گیت هاب پیج ترجمه ها رو آنلاین کنم که مطالعه راحت تر باشه.
و بووووومممم!
اینم سایت گیتاب ، Gitab
به زودی pdf همه شون قرار میدم.
لطفاً با دستای خوشگل تون با استار دادن حمایت کنید و به اشتراک بذارید، این ترجمه ها واقعا میتونه به برنامه نویس های جونیور، مید لول ... کمک کنه. هدف؛ بهانه نداشتن برای مطالعه کردن، افزایش منابع فارسی
https://hheydarian.github.io/Gitab/
Forwarded from DevTwitter | توییت برنامه نویسی
وقتی ماشینا شروع کردن فرش بافتن، بافندهها حذف نشدن، هنرمند شدن.
هنوزم فرش دستباف چند برابر گرونتر و ارزشمندتر از فرش ماشینیه.
پس نگران نباش، هوش مصنوعی جای تو رو نمیگیره، فقط نشون میده کی کار بلده و کی فقط حرف میزنه.
@DevTwitter
هنوزم فرش دستباف چند برابر گرونتر و ارزشمندتر از فرش ماشینیه.
پس نگران نباش، هوش مصنوعی جای تو رو نمیگیره، فقط نشون میده کی کار بلده و کی فقط حرف میزنه.
@DevTwitter