যে প্রক্রিয়াটি লকআপ করে, সিগকলকে উপেক্ষা করে, চালানো যায় (জম্বি বা নিরবচ্ছিন্ন ঘুমে নয়)। এটা কোন অবস্থায় আছে?


17

আমার একটি প্রক্রিয়া রয়েছে যা এখন বেশ কয়েকবার সাড়া দেওয়া বন্ধ করে দিয়েছে এবং পুরোপুরি লক হয়ে গেছে বলে মনে হচ্ছে। এটি স্ট্রেস বা জিডিবির সাথে উঁকি দেওয়ার কোনও প্রয়াসে সাড়া দেয় না (জিডিবি কেবল একটি ওয়েট 4 () সিস্কেলটিতে ঝুলিয়ে রাখে)। প্রক্রিয়াটি চলমান, এবং এটি কোনও সিস্টেমে অপেক্ষা করে না (/ proc / X / syscall running:) বা নিরবচ্ছিন্ন ঘুমে (/ proc / এক্স / স্থিতি State: R (running):)।

এই প্রক্রিয়াটি ঠিক কোন অবস্থায় রয়েছে? এটি সম্ভবত কোনও ধরণের কার্নেল বাগ?

প্রক্রিয়াটি পুনরায় হয়ে গেছে, এবং এটি এখন কয়েকবার ঘটেছে। প্রক্রিয়াটি হারাতে পারে এমন একটি জিনিসই একটি রিবুট, মনে হয়। ওএস হ'ল সেন্ট।

সম্পাদনা করুন: কার্নেল সংস্করণটি 3.10.0-123.13.2.el7.x86_64। এটি কোনও পার্থক্য করে কিনা তা দেখতে 3.10.0-229.11.1.el7 এ আপডেট করার চেষ্টা করছেন।


এটি জিডিবির কোন সংস্করণ ব্যবহার করছে? স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 8978777/… অনুসারে একটি নতুন সংস্করণ আরও ভাল কাজ করতে পারে।
গ্রেগ ব্রে

বর্তমানে দেখে মনে হচ্ছে তদন্তটি বিশেষভাবে ঝুলে থাকার কারণে তদন্তটি আরও কর্নেলের পক্ষে রয়েছে, তবে যদি আপনি কিছু মনে করেন না, তবে আপনি কয়েকটি রেডিস নির্দিষ্ট তথ্য যুক্ত করতে পারবেন? প্রক্রিয়াটি কীভাবে এটির মতো কাজগুলিকে অবরুদ্ধ করে চলেছে। টুইটারের মাধ্যমে নিক ক্র্যাভারের কাছ থেকে আমি কয়েকটি তথ্য পেয়েছি, স্পষ্টতই রেডিস একটি বড় ডেটা সেট লোড করছে যখন এটি ঘটে থাকে, ডেটা সেটটি কি কেবল প্রক্রিয়া পুনরায় আরম্ভ করে বা অন্য কোনও উপায়ে লোড করা হয় (উদাহরণস্বরূপ ডিবিগ রেলওডের মাধ্যমে, বা বিপুল পরিমাণে ডেপু পাইপলাইনের মাধ্যমে) )? ধন্যবাদ।

@ অ্যান্টেরিজ ডেটা সেটটি অন্য একটি রেডিস উদাহরণ থেকে আরডিবি অনুলিপি দ্বারা লোড করা হচ্ছে। লকআপগুলি redis শুরু হয়ে দৈত্য rdb পড়ার পরে ঘটে। উল্লেখযোগ্যভাবে এটি কখনও কখনও কখনও কখনও এই সময়ে লকআপগুলি রাখে না।
পরকীয়া

1
আইও ত্রুটি থাকা অবস্থায় আমার কেবল এই ধরণের সমস্যা ছিল had আপনি দয়া করে আমাদের dmesgআউটপুট সম্পর্কে বলতে পারেন ?
Ho1

3
/proc/<pid>/stack(এবং /proc/<pid>/task/*/stack) কী ধারণ করে? এই প্রক্রিয়াটি বেশ কয়েকটি থ্রেড পেয়েছে?
স্টাফেন চেজেলাস

উত্তর:


2

অপেক্ষা 4 হ'ল একটি সিস্টেমে বোঝা যাচ্ছে যে প্রক্রিয়াটি তার এক সন্তানের সমাপ্তির অপেক্ষায় রয়েছে। এটি সিগন্যাল হ্যান্ডলিংয়ের সাথে কিছু সমস্যা নির্দেশ করতে পারে।

একটি পাশবিক বিট, কিন্তু তোমাকে হত্যা করতে চেষ্টা করতে পারে অনুক্রমের অ্যাপের: kill -15 -$YourRedisPID- PID, মানে হলো "PID, এবং তার সন্তানদের" আগে। যেহেতু এটি মনে হচ্ছে কোনও শিশু সমাপ্তির অপেক্ষায় রয়েছে, এটি এটি আনলক করতে পারে।

যদি এটি কাজ না করে তবে আসুন আরও গভীরভাবে পরীক্ষা করুন: এর সাথে আপনার সিগন্যাল প্রক্রিয়া স্থিতিটি সন্ধান করুন grep ^Sig /proc/$YourRedisPID/status

আপনি কিছু জিনিস দেখতে পাবেন:

SigQ:   8/62777
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000080
SigCgt: 0000000180004023

কার্নেল উত্সের "fs / proc / array.c" তে সংজ্ঞায়িত হিসাবে, "সিগকিউ" হ'ল সিগন্যালগুলির সংখ্যা / মুলতুবি থাকা সংকেতগুলির সীমা।

সিগন্যালের সংখ্যা যদি খুব বেশি হয় তবে এটি আপনার "সিগ্কিল" হ্যান্ডলড নির্দেশ করে না। এই বিশেষ সিগন্যালের সিগন্যাল পরিচালনা বুঝতে আমি এখনও "কার্নেল / সিগন্যাল। সি" ফাইলটি যাচাই করছি।

আউটপুট সম্পর্কে সরাসরি বোঝার জন্য, এই ওয়ান-লাইনারটি ব্যবহার করে দেখুন: awk 'BEGIN{print "ibase=16;obase=2;"} /^Sig...:/{ print toupper($2)}' /proc/$YourRedisPID/status | BC_LINE_LENGTH=0 bc

এটি আমার ফলাফল:

0
0
10000000
110000000000000000100000000100011

আমাদের এই আউটপুট প্রেরণ দ্বারা শুরু করা যাক। আমি প্রয়োজনীয় হিসাবে পোস্ট আপডেট করব।


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

আউটপুট এখানে: gist.githubusercontent.com/alienth/23685ad2ea46a7eade56/raw/… আবারও, প্রোগ সিগ্কিল উপেক্ষা করছে। এটি কোন সিস্টেমে নেই। প্রকর সিগনটারও উপেক্ষা করে।
পরের দিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.