Deno-এর বিল্ডের জন্য 16GB RAM প্রয়োজন বলে মনে হচ্ছে, কিন্তু আমি 8GB RAM দিয়ে এটি তৈরি করতে চাই।

4 min

language: ja bn en es hi pt ru zh-cn zh-tw

নমস্কার, আমি অদক্ষ।
যখন আমি নিজে কিছু পরিবর্তন করে বিল্ড করার চেষ্টা করছিলাম,

error: linking with `cc` failed: exit status: 1

এই বার্তাটি দেখাচ্ছিল এবং কম্পাইল হচ্ছিল না।
সাধারণত, এটি একটি ত্রুটি যা লিঙ্কার কিছু কাজ করার সময় ঘটে বলে মনে হয়, কিন্তু আমি এটি অনুসন্ধান করেও কোনো ফলাফল পাইনি।

উত্তর syslog-এ

যাইহোক, আমি আমার হোম সার্ভারের Devuan মেশিনে SSH এর মাধ্যমে সংযোগ করে বিল্ড করছিলাম, কিন্তু এটিও কাজ করছিল না।
এবং ঘটনাক্রমে, আমি Devuan মেশিনের স্ক্রিন মনিটরে আউটপুট করছিলাম, এবং ত্রুটির আউটপুটটি ছিল... OOM Killer?

$ sudo cat /var/log/syslog | grep "Out of memory" 
Oct 13 11:50:16 localhost kernel: [227399.170721] Out of memory: Killed process 8309 (ld) total-vm:2711000kB, anon-rss:2682476kB, file-rss:1608kB, shmem-rss:0kB, UID:1000 pgtables:5352kB oom_score_adj:0
Oct 13 12:38:52 localhost kernel: [230315.610776] Out of memory: Killed process 9472 (ld) total-vm:2883664kB, anon-rss:2872404kB, file-rss:1468kB, shmem-rss:0kB, UID:1000 pgtables:5704kB oom_score_adj:0
Oct 13 16:34:15 localhost kernel: [244437.896036] Out of memory: Killed process 9979 (ld) total-vm:2195452kB, anon-rss:2187944kB, file-rss:1604kB, shmem-rss:0kB, UID:1000 pgtables:4348kB oom_score_adj:0

$ date
2024年 10月 13日 日曜日 16:48:12 JST

মনে হচ্ছে মেমরি কম থাকার কারণে কম্পাইলেশনের সময় চালু হওয়া প্রক্রিয়াগুলি কিল হয়ে যাচ্ছে এবং বিল্ড সম্পন্ন হচ্ছে না।
আমি ইতিমধ্যেই একটি ইস্যু তৈরি করে ফেলেছিলাম,
cargo test -vv faild on Arch/Artix Linux #26191
যদিও অফিসিয়াল সোর্স থেকে বিল্ড করার প্রয়োজনীয়তাগুলিতে এটি লেখা ছিল না, তবে বিল্ডের জন্য সর্বনিম্ন 16GB RAM প্রয়োজন বলে মনে হচ্ছে...

পরীক্ষামূলকভাবে, আমি আমার কাস্টম-বিল্ট পিসিতে প্রায় 40GB RAM সহ বিল্ড করার চেষ্টা করেছিলাম এবং এটি সফল হয়েছিল...

যেকোনো মূল্যে আমি 8GB RAM পরিবেশে Deno কম্পাইল করতে চাই!!

শেষ পর্যন্ত, যদি আমি শুধুমাত্র deno বাইনারিটি তৈরি করতে চাই, তাহলে ইস্যুগুলিতে যেমনটি বলা হয়েছিল,

cargo build -p deno --bin deno

এটি যথেষ্ট বলে মনে হয়, কিন্তু এটি দিয়েও প্রায়শই কাজ হয় না।
সুতরাং, আমি মেমরি ব্যবহার কমানোর উপায় খুঁজছিলাম...

CARGO_BUILD_JOBS=1 cargo build -p deno --bin deno -j 1

এটি সম্ভবত ধীর হবে, তবে একবার স্বাভাবিকভাবে বিল্ড করার পরে, যদি OOM Killer ঘটার পরে উপরের কমান্ডটি ব্যবহার করা হয়, তাহলে এটি ক্যাশে ব্যবহার করে বিল্ড করবে এবং তুলনামূলকভাবে দ্রুত শেষ হবে।
বিল্ডের কাজটি একটিতে সীমাবদ্ধ করা হয়েছে এবং কম্পাইলেশনের সময় CPU-এর একটি থ্রেড ব্যবহার করা হয়েছে, তাই কম্পাইল করার সময় অন্যান্য চলমান প্রক্রিয়াগুলির উপর এর প্রভাব কম থাকে। আমি মনে করি এটি একটি বেশ ভালো এনভায়রনমেন্ট ভেরিয়েবল/অপশন স্পেসিফিকেশন। তবে, এটি ধীর।

তাহলে আবার দেখা হবে।
শুভেচ্ছা রইল।

Related Posts