ls একটি নির্দিষ্ট ডিরেক্টরি জন্য স্তব্ধ


35

একটি নির্দিষ্ট ডিরেক্টরি আছে ( /var/www), যেটি যখন আমি চালিত করি ls(কিছু বিকল্প সহ বা ছাড়াই), কমান্ডটি স্তব্ধ হয়ে যায় এবং কখনই সম্পূর্ণ হয় না। এখানে প্রায় 10-15 ফাইল এবং ডিরেক্টরি রয়েছে /var/www। বেশিরভাগ ক্ষেত্রে কেবল টেক্সট ফাইল। এখানে কিছু তদন্তকারী তথ্য রয়েছে:

[me@server www]$ df .
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_dev-lv_root
                       50G   19G   29G  40% /

[me@server www]$ df -i .
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/vg_dev-lv_root
                        3.2M    435K    2.8M   14% /

findঠিকভাবে কাজ করে. এছাড়াও আমি cd /var/www/এন্টার টিপানোর আগে টাইপ করে টিএব টিপতে পারি এবং এটি সেখানে সমস্ত ফাইল / ডিরেক্টরিগুলির তালিকা সফলভাবে ট্যাব-সমাপ্তির তালিকা:

[me@server www]$ cd /var/www/
cgi-bin/         create_vhost.sh  html/            manual/          phpMyAdmin/      scripts/         usage/
conf/            error/           icons/           mediawiki/       rackspace        sqlbuddy/        vhosts/
[me@server www]$ cd /var/www/

lsফাঁসির কারণে আমার টার্মিনাল সেশনগুলি বেশ কয়েকবার হত্যা করতে হয়েছিল :

[me@server ~]$ ps | grep ls
gdm       6215  0.0  0.0 488152  2488 ?        S<sl Jan18   0:00 /usr/bin/pulseaudio --start --log-target=syslog
root     23269  0.0  0.0 117724  1088 ?        D    18:24   0:00 ls -Fh --color=always -l
root     23477  0.0  0.0 117724  1088 ?        D    18:34   0:00 ls -Fh --color=always -l
root     23579  0.0  0.0 115592   820 ?        D    18:36   0:00 ls -Fh --color=always
root     23634  0.0  0.0 115592   816 ?        D    18:38   0:00 ls -Fh --color=always
root     23740  0.0  0.0 117724  1088 ?        D    18:40   0:00 ls -Fh --color=always -l
me       23770  0.0  0.0 103156   816 pts/6    S+   18:41   0:00 grep ls

kill প্রক্রিয়াগুলিতে এমনকি সুডোর মতো কোনও প্রভাব ফেলেছে বলে মনে হয় না।

এই সমস্যাটি তদন্ত করতে আমার আর কী করা উচিত? এটি আজ এলোমেলোভাবে ঘটতে শুরু করেছে আজ।

হালনাগাদ

dmesgজিনিসগুলির একটি বৃহত তালিকা, বেশিরভাগই বাহ্যিক ইউএসবি এইচডিডি সম্পর্কিত যা আমি অনেকবার মাউন্ট করেছি এবং সর্বাধিক মাউন্ট গণনা পৌঁছেছে, তবে এটি আমার মনে হয় একটি সম্পর্কিত নয় problem এর নীচের অংশে dmesgআমি এটি দেখছি:

INFO: task ls:23579 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
ls            D ffff88041fc230c0     0 23579  23505 0x00000080
 ffff8801688a1bb8 0000000000000086 0000000000000000 ffffffff8119d279
 ffff880406d0ea20 ffff88007e2c2268 ffff880071fe80c8 00000003ae82967a
 ffff880407169ad8 ffff8801688a1fd8 0000000000010518 ffff880407169ad8
Call Trace:
 [<ffffffff8119d279>] ? __find_get_block+0xa9/0x200
 [<ffffffff814c97ae>] __mutex_lock_slowpath+0x13e/0x180
 [<ffffffff814c964b>] mutex_lock+0x2b/0x50
 [<ffffffff8117a4d3>] do_lookup+0xd3/0x220
 [<ffffffff8117b145>] __link_path_walk+0x6f5/0x1040
 [<ffffffff8117a47d>] ? do_lookup+0x7d/0x220
 [<ffffffff8117bd1a>] path_walk+0x6a/0xe0
 [<ffffffff8117beeb>] do_path_lookup+0x5b/0xa0
 [<ffffffff8117cb57>] user_path_at+0x57/0xa0
 [<ffffffff81178986>] ? generic_readlink+0x76/0xc0
 [<ffffffff8117cb62>] ? user_path_at+0x62/0xa0
 [<ffffffff81171d3c>] vfs_fstatat+0x3c/0x80
 [<ffffffff81258ae5>] ? _atomic_dec_and_lock+0x55/0x80
 [<ffffffff81171eab>] vfs_stat+0x1b/0x20
 [<ffffffff81171ed4>] sys_newstat+0x24/0x50
 [<ffffffff810d40a2>] ? audit_syscall_entry+0x272/0x2a0
 [<ffffffff81013172>] system_call_fastpath+0x16/0x1b

এবং এছাড়াও, strace ls /var/www/পুরো তথ্য গোছা আউট। আমি এখানে কী দরকারী তা জানি না ... সর্বশেষ মুষ্টিমেয় লাইন:

ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=68, ws_col=145, ws_xpixel=0, ws_ypixel=0}) = 0
stat("/var/www/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/var/www/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
fcntl(3, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
getdents(3, /* 16 entries */, 32768)    = 488
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 9), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3093b18000
write(1, "cgi-bin  conf  create_vhost.sh\te"..., 125cgi-bin  conf  create_vhost.sh      error  html  icons  manual  mediawiki  phpMyAdmin  rackspace  scripts  sqlbuddy  usage   vhosts
) = 125
close(1)                                = 0
munmap(0x7f3093b18000, 4096)            = 0
close(2)                                = 0
exit_group(0)                           = ?

একই লক্ষণ দ্বারা এই প্রশ্নটি পাওয়া গেছে। দেখা গেল, আমার একটি দূরবর্তী ফাইল সিস্টেমটি এসএসএফএসের মাধ্যমে একটি ফাঁসিযুক্ত সংযোগের সাথে মাউন্ট করা ছিল।
বোহদান_ট্রোটসেনকো

2
সুতরাং আপনি sshfs দিয়ে কি করবেন? আমি একই সমস্যা আছে।
মেনেলাওস বাকোপলোস

2
ls একটি নির্দিষ্ট ডিরেক্টরি জন্য getdents () এ আমার জন্য স্তব্ধ। আমি আনমাউন্ট না করে, xfs_check চালিয়েছি, xfs_repair চালিয়েছি এবং কোনও সমস্যা না পাওয়া সত্ত্বেও পুনঃস্থাপনের পরে বিষয়টি নিজেই সমাধান হয়ে গেছে।
Leons

আটকে থাকা এলএস রান সাফ করতে আমাকে 'কিল -9' ব্যবহার করতে হয়েছিল।
ফ্লিকারফ্লি

উত্তর:


25

দৌড়ে দেখুন strace ls /var/www/এবং এটি কীভাবে ঝুলছে। এটি অবশ্যই I / O- এর সাথে ঝুলিয়ে দেওয়া হয়েছে - এটি Dআপনার psআউটপুটে অবস্থিত রাষ্ট্রটির অর্থ (এবং যেহেতু killএটি সহায়তা করে না, এটি নিরবচ্ছিন্ন I / O সিস্টেস্টগুলির মধ্যে একটি)। বেশিরভাগ হ্যাঙ্গগুলি এমন কোনও এনএফএস সার্ভারকে জড়িত করে যা godশ্বরের কাছে গিয়েছিল তবে আপনার ভিত্তিতে এটি dfএখানে ঘটেনি। dmesgফাইলসিস্টেম বা ডিস্ক সম্পর্কিত যে কোনও কিছুর জন্য দ্রুত চেক করা উপযুক্ত হতে পারে, সেক্ষেত্রেই।


2
এনএফএস এখনও হতে পারে। যদি lsতারা এমন কোনও কিছুর সাথে যুক্ত হয় যা তারা কী নির্দেশ করছে তার সিমলিংকগুলি আবিষ্কার করার চেষ্টা করে তবে এটি ঝুলতে পারে যদি সিমলিংকটি একটি মৃত এনএফএস মাউন্টের দিকে নির্দেশ করে।
প্যাট্রিক

গাহ, খেয়াল করে দেখেনি যে এটি একটি df .এবং সম্পূর্ণ নয় df। এটি অবশ্যই একটি এনএফএস সমস্যা হতে পারে।
দোলা

এখানে কোনও এনএফএস মাউন্ট নেই। এটি সমস্ত স্থানীয় সিঙ্গল ডিস্ক। এটি একটি খুব সাধারণ লিনাক্স সার্ভার। একটি শারীরিক ড্রাইভ।
জেক উইলসন

strace ls /var/www/একগুচ্ছ জিনিস ছাপায়। আমি কি খুঁজছি? শেষ লাইন হয় exit_group(0) = ?
জেক উইলসন

2
@ জাকোবুদ strace -vf ls -l /var/wwwএটি নির্দিষ্ট ফাইল বা ডীরের কাছে থামছে কিনা তা দেখার চেষ্টা করুন ।
অট--

3

আমার একই লক্ষণগুলির সাথে সমস্যা ছিল। দেখা গেল যে জিভিএফএসের উপরে এসএমবি মাউন্টে আমার সেই ডিরেক্টরিতে একটি সিমিলিংক ছিল।

lrwxrwxrwx  1 alex alex        45 Sep 16  2011 foo -> /home/alex/.gvfs/bar on foo/data/

সাধারণত lsশেয়ারটি মাউন্ট হয়েছিল কিনা তা তাত্ক্ষণিকভাবে সম্পূর্ণ হবে। তবে এই ক্ষেত্রে আমি মেশিনটি স্থগিত করে আবার চালু করে দিয়েছিলাম এবং মাউন্টটি সাধারণভাবে খারাপ পারফর্ম করছিল। শেয়ারটি পুনঃনির্মাণ করা সমস্যার সমাধান করেছে।


2

আমি একই সমস্যা ছিল।

একটি ডিরেক্টরি প্রবেশ জরিমানা, তালিকা এটা হ্যাং, কাজ, ট্যাব সম্পূর্ণ হ্যাং, এবং কিছু ফোল্ডার তলদেশে খুঁজতে না হবে। খুব মাথা- scratchingly- অদ্ভুত।

সার্ভার ফল্টে এই থ্রেডটি পড়া আমাকে সমাধানের দিকে যুক্তিযুক্ত পথে নিয়ে যায়।

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

আমি এরপরে নিম্নরূপ:

  1. বিভাজনযুক্ত ডিরেক্টরি থাকা পার্টিশনটি আনমাউন্ট করুন।
  2. Fstab সম্পাদনা করুন এবং স্বতঃআপনাকে মন্তব্য করা বা অটো ছাড়াই রূপান্তর করুন।
  3. সিস্টেমডি থাকলে এটি পুনরায় লোড করুন: systemctl - সিস্টেমে ডেমন-রিলোড
  4. মাউন্ট -a

আবার ডিরেক্টরিতে প্রবেশ করার চেষ্টা করুন এবং সমস্যাটি স্থির করে দেওয়ার জন্য উষ্ণ अस्पष्ट অনুভূতি পান।


1

ভোমলের পরামর্শগুলি দুর্দান্ত, এবং আপনার প্রথমে সেগুলি চেষ্টা করা উচিত, তবে তারা যদি এটি ঠিক না করে তবে ফাইল সিস্টেমটি স্ব-অসামঞ্জস্য হয়ে উঠলে আমার সমস্যা হয় (ফ্ল্যাশ হার্ডওয়্যার, অস্পষ্ট কার্নেল বাগ বা এমনকি মহাজাগতিক রশ্মির মাধ্যমে)।

যদি আপনি ভাবেন যে এটি হতে পারে তবে আপনি রিবুট করার জন্য একটি fsck জোর করতে পারেন touch /forcefsck; reboot। বুট করার সময় এটি কী বলে তা দেখুন, fsck কোনও অসঙ্গতি ফেলেছে কিনা তা দেখতে।

সতর্কতা : এটি মেশিনের সাথে সংযুক্ত সমস্ত ফাইল সিস্টেমকে fsck করবে; যদি আপনার সাথে একটি মাল্টি-পেটাবাইট ডিস্ক অ্যারে সংযুক্ত থাকে তবে এটি করতে কয়েক দিন লাগতে পারে । fsckফাইল সিস্টেমে তথ্য ডেটা ক্ষতি হতে পারে; যদি আপনার ফাইল সিস্টেমে সত্যিই অসঙ্গতি থাকে তবে e2fsck এটিকে এমন এক থেকে পরিবর্তন করবে যা সঠিক দেখাচ্ছে তবে বেশ কার্যকর নয়, এমন একটিতে যা সঠিকভাবে কাজ করে তবে আপনার প্রত্যাশিত সমস্ত কিছুই নাও থাকতে পারে।


1

আপনি বর্ণিত একই একই লক্ষণ আমার ছিল। সমস্যা সমাধানের জন্য আমাকে যা করতে হয়েছিল তা হ'ল ডিএনএস সার্ভারের ঠিকানাগুলি ঠিক করা। আমরা এনএএসকে একটি নতুন নেটওয়ার্কে স্থানান্তরিত করেছি, যার জন্য ডিএনএস সার্ভারের ঠিকানাগুলি আপডেট করার প্রয়োজন। ঠিকানাগুলি স্থিতিশীলভাবে বরাদ্দ করা হয়েছিল, তবে কিউএনএপি ওয়েব ইন্টারফেসে আমি স্বয়ংক্রিয়ভাবে বরাদ্দ করার জন্য এটি আপডেট করেছি।


কোনও ভুল ডিএনএস এন্ট্রি কেন সমস্যার সৃষ্টি করবে তা নিয়ে আপনার কোনও ব্যাখ্যা আছে?
রালফ্রেডল

0

আশা করি এটি সহায়ক হবে, উবুন্টু ১৪.০৪-এ এ.এফ.এস. ড্রাইভারের ব্যবহার করে dockerএবং তার দ্বারা আমার উপরের লক্ষণগুলি দেখা দিয়েছে docker composels <dir>ঝুলছিল, এবং strace ls <dir>দেখিয়েছিল যে এটি getdentsকলটিতে ঝুলছিল । সমস্ত চলমান পাত্রে থামানো আমাকে প্রত্যাশা অনুযায়ী ড্রাইভটি ব্যবহার শুরু করার অনুমতি দেয়।


-2

স্ট্রেস ls / var / www / চালানো আপনাকে যা ভুল তা থেকে বাধা দেবে। আমি / dir এর জন্য একই ধরণের সমস্যা পেয়েছি এবং স্ট্রেস ব্যবহার করে আমি এটি সনাক্ত করতে সক্ষম হয়েছি এটি একটি NAS মাউন্ট যা এর কারণ হয়েছিল। আনমাউন্টিং যে এনএএস সমস্যাটি স্থির করেছে।


3
-1: এটি ইতিমধ্যে গৃহীত উত্তরের পুনরাবৃত্তি।
এইচবিউইজন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.