নোড.জেএস: ENOSPC ত্রুটি কী এবং কীভাবে সমাধান করা যায়?


348

নোড.জেএস এবং সার্ভারে ফাইলগুলি আপলোড করা নিয়ে আমার সমস্যা আছে। সার্ভারে ফাইলগুলি আপলোড করার জন্য আমি এই প্লাগইনটি ব্যবহার করি । সার্ভারে ফাইল আপলোড শুরু করার সময়, নোড.জেএস প্রক্রিয়া ক্র্যাশ হয়ে গেছে এবং ত্রুটি দেখায়:

ত্রুটি: ENOSPC।

সার্ভার কোড চলছে না।

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  4.1G  3.5G  55% /
udev            288M  8.0K  288M   1% /dev
tmpfs           119M  168K  118M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            296M     0  296M   0% /run/shm
/dev/xvdf       9.9G  3.0G  6.5G  32% /vol
overflow        1.0M  1.0M     0 100% /tmp

1
"ENOSPC" এর অর্থ হ'ল ড্রাইভে কোনও স্থান নেই তাই আপনি নিজের ফাইলটি কোথায় সংরক্ষণ করবেন? অথবা হয়তো / টিএমপি পূর্ণ?
জ্যাকব এ।

আমি ফাইলগুলিতে / dev / xvda1 এ সংরক্ষণ করি। আমি কি আরএম-আরএফ / টিএমপি / * বানাতে পারি?
গিফো

1
হ্যাঁ, তবে আমি মনে করি না যে ফাইল আপলোডের জন্য 1 এমবিই যথেষ্ট, তাই ব্লু অ্যাঞ্জেল
জ্যাকব এ-এর

3
আপনার ব্যবহারের ক্ষেত্রে মত শব্দগুলি পৃথক হতে পারে তবে অন্য একটি এসও প্রশ্ন থেকে এই সমস্যার দুর্দান্ত সমাধান
আইজাক গ্রেগসন

যে কেউ এইজন্য হোঁচট খাচ্ছে তার জন্য এই উত্তরটিও পরীক্ষা করে দেখুন । গ্রান্ট এবং গাল্প ব্যবহার করে প্রচুর ঘড়ি ব্যবহার করতে পারে, সুতরাং এই উত্তর কীভাবে এটি বাড়ানো যায় তার বিশদ দেয়।
সেয়ারিয়া

উত্তর:


1271

ENOSPC এড়ানোর জন্য নীচের কমান্ডটি চালান:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

আর্চ লিনাক্সের জন্য এই লাইনটি যুক্ত করুন /etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288

তারপরে কার্যকর করুন:

sysctl --system

এটি পুনরায় বুটগুলি জুড়ে থাকবে। প্রযুক্তিগত বিবরণ উত্স


24
এখানে এটি কি করে। github.com/guard/listen/wiki/…
আগুস

2
এটি কোনও এলোমেলো সংখ্যা নয়। প্রতিটি ব্যবহৃত ইনওটিফাই ওয়াচ 540 বাইট (32-বিট সিস্টেম), বা 1 কেবি (ডাবল - bit৪-বিটের উপর) লাগে takes এটি কার্নেল মেমরি থেকে বেরিয়ে আসে, যা অপ্রয়োজনীয়। সুতরাং, ধরে নিই যে আপনি সর্বোচ্চটি 524288 এ সেট করেছেন এবং সবগুলি ব্যবহার করা হয়েছিল (অসম্ভব), আপনি প্রায় ব্যবহার করবেন। 32-বিট / 64-বিট কার্নেল মেমরির 256MB / 512MB।
মুরালি কৃষ্ণ

তাত্ত্বিকভাবে যতক্ষণ আপনার পর্যাপ্ত র্যাম থাকে ততক্ষণ কোনও সর্বোচ্চ মান থাকে না। অনুশীলনে, 524288 আনুষ্ঠানিকভাবে অ্যাপ্লিকেশনগুলির দ্বারা প্রস্তাবিত হয়েছে, এবং লোকেরা মেমোরির সাথে ব্যবহারের সাথে এটি 2 মিলিয়নে সেট করছে।
মুরালি কৃষ্ণ

এটি আমাকে সমস্যার সমাধান করতে সহায়তা করেছে এই লিঙ্কটিতে github.com/guard/listen/wiki/… সমস্ত বিবরণ রয়েছে। ধন্যবাদ
amitsin6h

অন্য কেউ কি এটাকে অদ্ভুত বলে মনে করে যে ত্রুটিটি কেবল বেরিয়ে আসে ENOSPC? আউটপুট পছন্দ করার পরে ঠিক কেন একটি বিবরণ নেই ENOSPC - no space on drive? অবশ্যই, ত্রুটি কোডটি এর অর্থ কী তা জানার পরে আপনি এটি বুঝতে পারেন ( E rror NO SP a C e), তবে কেন কেবল ব্যবহারকারীদের সামনে তথ্য দেওয়া উচিত নয়?
শাদোনিনজা

73

ENOSPC মানে ড্রাইভে কোনও জায়গা নেই no

সম্ভবত /tmpপূর্ণ? আপনি npmসেট করে আলাদা টেম্প ফোল্ডারটি ব্যবহার করতে কনফিগার করতে পারেন npm config set tmp /path/to/some/other/dirবা /tmpফোল্ডারের বাইরে থাকা সমস্ত কিছু মুছতে পারেন ।

সূত্র: এনপিএম 1.1.21 লিখতে পারবেন না, গিথুবে এনপিএম-এর রেপোতে ENOSPC

দ্রষ্টব্য আমি আমার উত্সটি উপরের উত্সে বর্ণিত পদ্ধতিতে সমাধান করেছি। তবে নীচে মুরালি কৃষ্ণের উত্তর দেখুন, যা আরও ব্যাপক comprehensive


আমি পরিষ্কার / tmp ফোল্ডার এবং এনপিএম টেম্প ফোল্ডার পরিবর্তন করেছি, তবে একই সমস্যা আছে। npm config get tmpশো / ভোল / মোতায়েন /
টিএমপি

আপনি আবার আপনার আউট পুট দেখাতে পারেন? আউটপুট যা আপনি পরিবর্তনের পরে পাবেন dir
ব্লু

events.js:71 throw arguments[1]; // Unhandled 'error' event Error: ENOSPC, write
গিফো

1
আপনি শ্রোতা ত্রুটি আছে? যদি না লিখতে হয় এবং তারপরে ফলাফলটি আউটপুট পরীক্ষা করে দেখুন
ব্লু

72
ভুল, এই ত্রুটিটি প্রায়শই ফাইলগুলি দেখার সময় ডেভেলপার ওয়ার্কস্পেসে ঘটে থাকে (গ্রান্ট / গাল্পের মাধ্যমে)। প্রক্রিয়াটি কতগুলি ফাইল (নেটিভ ওয়াচ) দেখতে পারে তার একটি ইউনিক্স সীমাতে এটি করতে হবে। অন্যান্য উত্তর (প্রতিধ্বনি fs.inotify.max_user_watches = 524288) সেই ক্ষেত্রে সমাধান।
ক্যান্সারবেরো

26

এর জন্য ক্রেডিট নিতে পারি না, তবে @ গ্রেনেড নির্দেশ করে যে npm dedupeকারণটি (খুব বেশি ফাইল) স্থির করবে এবং লক্ষণটি নয়।

উত্স: গ্রান্ট ঘড়ির ত্রুটি - অপেক্ষা করা হচ্ছে ... মারাত্মক ত্রুটি: ENOSPC দেখুন


কাজ করে না :(
জেরিচার্ডস

20

আমার সমস্যার সমাধান করার একটি সহজ উপায় ছিল:

npm cache clear

এনপিএম বা এটি দ্বারা নিয়ন্ত্রিত একটি প্রক্রিয়া অনেকগুলি ফাইল দেখছে। বিল্ড নোডে সর্বোচ্চ_উজার_ওয়াচগুলি আপডেট করা চিরকালের জন্য এটি ঠিক করতে পারে। ডিবিয়ানদের জন্য টার্মিনালটিতে নিম্নলিখিতগুলি রাখুন:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

আপনি যদি জানতে চান যে কীভাবে ইনোটিফাই পর্যবেক্ষকদের পরিমাণ বাড়ায় কেবলমাত্র লিঙ্কটিতে ক্লিক করুন।


2
আমি forever,ফাইলটি তৈরি করার সময় .foreverignoreএবং তাদের ফোল্ডারে যুক্ত করার পরে আমার সমস্যাটি সমাধান হয়েছেnode_modules.
ভিলিন্ট্রিটেনমার্ট

7

যন্ত্রটি রিবুট করা আমার জন্য সমস্যার সমাধান করেছে। আমি প্রথমে মুছার চেষ্টা করেছি /tmp/কিন্তু নোড এখনও অভিযোগ করছে।


রিবুট করার পরে সমস্যা ফিরে এসেছিল। করা dedupeসাহায্য করেছে।
পার্নব সান্যাল

4

লিনাক্স-এ, ফাইল ঘড়ির সংখ্যার সীমা হতে পারে।

বিকাশ সার্ভার হট-রিলোডিং বাস্তবায়নের জন্য ইনোটাইফাই ব্যবহার করে । ইনোটাইফাই এআইপি বিকাশ সার্ভারকে ফাইলগুলি দেখার অনুমতি দেয় এবং সেগুলি পরিবর্তিত হলে তাকে জানানো হয়।

ডিফল্ট ইনোটিফাই ফাইল ওয়াচ সীমা বিতরণ থেকে বিতরণে (ফেডোরায় 8192) পরিবর্তিত হয়। বিকাশ সার্ভারের প্রয়োজনগুলি প্রায়শই এই সীমা অতিক্রম করে।

অস্থায়ীভাবে ফাইল ঘড়ির সীমা বাড়ানোর চেষ্টা করা সর্বোত্তম পন্থা হ'ল তারপরে আপনি যদি খুশি হন তবে স্থায়ী কনফিগারেশন পরিবর্তন করে নিন। দ্রষ্টব্য, যদিও, এটি আপনার পুরো সিস্টেমের কনফিগারেশন পরিবর্তন করে, কেবল নোড নয়।

আপনার বর্তমান সীমাটি দেখতে:

sysctl fs.inotify.max_user_watches

অস্থায়ীভাবে একটি নতুন সীমা সেট করতে:

# this limit will revert after reset
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p
# now restart the server and see if it works

স্থায়ী সীমা নির্ধারণ করতে:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

আপনাকে ধন্যবাদ আমার এই সমস্যার সমাধান।
জোশ

ধন্যবাদ !! আপনার অস্থায়ী সমাধান সমাধান কাজ করে!
জেরিচার্ডস

3

উবুন্টু 18.04-তে, আমি একটি কৌশল চেষ্টা করেছিলাম যা আমি আয়নিক / নোড দ্বারা ফাইল দেখার পুনরায় সক্রিয় করতে ব্যবহার করি এবং এটি এখানেও কাজ করে। যাঁরা সিস্টেম কনফ ফাইলগুলিতে অ্যাক্সেস করেন না তাদের পক্ষে এটি কার্যকর হতে পারে।

CHOKIDAR_USEPOLLING=1 npm start

2

আমি সমস্ত ট্র্যাকার-নিয়ন্ত্রণ প্রক্রিয়াগুলি হারাতে আমার সমস্যার সমাধান করেছি (আপনি যদি জিডিএম ব্যবহার করেন তবে আপনি চেষ্টা করতে পারেন, সম্ভবত কোনও ক্ষেত্রে সার্ভারে স্ক্রিপ্ট চলছে কিনা)

tracker-control -r

আমার সেটআপ: জিনোম 3 সহ আর্চ করুন


1
এটি উল্লেখ করতে ভুলে গেছেন, হ্যাঁ, আমিও একই পরিস্থিতিতে ছিলাম: খিলান + জিনোম
ভিটালি

2

যদি /tmpএকটি লিনাক্স ফাইল সিস্টেমে আপনার মাউন্টটি ওভারফ্লো হিসাবে প্রায়শই মাউন্ট করা হয় (প্রায়শই এটি 1MB আকারের হয়) তবে এটি সম্ভবত /tmpআপনার নিজের পার্টিশন এবং আপনার রুট ফাইল সিস্টেম ভরাট হিসাবে উল্লেখ না করায় এবং /tmpফলব্যাক হিসাবে পুনরায় সঞ্চারিত হয়েছিল।

আপনি স্থান সাফ করার পরে এটি ঠিক করতে, কেবল ফ্যালব্যাকটি আনমাউন্ট করুন এবং এটির মূল বিন্দুতে এটি পুনঃনির্মাণ করা উচিত:

sudo umount overflow

2

ember serverকমান্ড চালানোর চেষ্টা করার সময় আপনি যদি এই ত্রুটির মুখোমুখি হন দয়া করে rm -rf tmpডিরেক্টরি। তারপরে ember sআবার দৌড়াও । এটা আমাকে সাহায্য করেছে।


2

আমি একই ত্রুটি ছিল। আমি যখন Reactjs অ্যাপটি চালিত করি। আমি যা করি তা হ'ল নোড_মডিউলগুলি ফোল্ডারটি সরিয়ে আবার নোড_মডিউলগুলি টাইপ করে ইনস্টল করুন। এটি ত্রুটি অপসারণ করে।


এটি সত্যিই কাজ করে, কেন এটি নিম্নচালিত - এটি প্রশ্ন। তবে এটি সমস্যার সমাধান করে, তাই আপনার আর কী দরকার?
অ্যালেক্সনিকনভ

1
জানেন না, লোকেরা আমার সাথে কিছু ব্যক্তিগত সমস্যা থাকতে পারে। Hahaha
Ghayyas Mubashir

1

আমার জন্য আমি ব্যবহারকারীর মালিকানাধীন ফাইলগুলির সর্বাধিক সংখ্যায় পৌঁছেছি

আপনার নম্বরগুলি সহ quota -sফাইলগুলি পরীক্ষা করুন এবং কোটার খুব কাছে নেই


1

এটি খুব অদ্ভুত শোনায় তবে হ্যাঁ, একটি সিস্টেম killall nodeআমার জন্য পুনরায় বুট করে বা সমস্যাটি সমাধান করে।


-15

আমার ক্ষেত্রে, লিনাক্সে, সুডিং সমস্যাটি স্থির করেছে।

উদাহরণ:

sudo gulp dev

5
এটা বিপজ্জনক! এটি সম্ভবত সফল হয়েছে কারণ ডিস্কের একটি নির্দিষ্ট শতাংশের মূল মূলের জন্য সংরক্ষিত রয়েছে, যা মূল সমস্যাটির সমাধান করে না - অবাঞ্ছিত ব্যবহারকারী (লক্ষ্য স্থানে) হিসাবে কোনও স্থান উপলব্ধ নেই।
লিয়াম ডসন

জিনিসগুলি ঘটানোর জন্য সুডো ব্যবহার করা দুর্দান্ত উপায়, তবে বেশিরভাগ লোকেরা সুডো ব্যবহারের সময় ঘটে যাওয়া সমস্ত কিছু বুঝতে অবহেলা করে। বিশেষত এনপিএম, এবং এনপিএম মডিউলগুলির সাহায্যে, sudo ব্যবহারের ফলে রুট দ্বারা এমন কিছু সম্পাদন করা যেতে পারে যা ব্যবহারকারী রুট দ্বারা সম্পাদন করতে চান না যেমন ফাইল তৈরি বা সুরক্ষিত পোর্টগুলির ব্যবহার। মূলত, "ব্যবহার সুডো" পরামর্শটি তার মুখের উপর সমতল হয়ে পড়ে (সম্ভবত এক মুহুর্তের জন্য হোঁচট খেয়ে রৌদ্রের দিকে তাকানোর পরে) যেখানে এনভিএম / এনপিএম / নোড সম্পর্কিত।
bschlueter
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.