আমার প্রক্রিয়াটি কীভাবে মেরেছিল এবং কেন?


614

আমার অ্যাপ্লিকেশন লিনাক্সে একটি পটভূমি প্রক্রিয়া হিসাবে চলমান। এটি বর্তমানে টার্মিনাল উইন্ডোতে কমান্ড লাইনে শুরু হয়েছে।

সম্প্রতি একজন ব্যবহারকারী কিছুক্ষণের জন্য অ্যাপ্লিকেশনটি সম্পাদন করছিলেন এবং এটি রহস্যজনকভাবে মারা গেল। পাঠ্য:

নিহত

টার্মিনালে ছিল। এই ঘটনা দু'বার ঘটেছে। আমি জিজ্ঞাসা করেছি, অন্য টার্মিনালের কেউ যদি প্রক্রিয়াটি হত্যার জন্য কিল কমান্ড ব্যবহার করে? না।

লিনাক্স কোন পরিস্থিতিতে আমার প্রক্রিয়াটি মেরে ফেলার সিদ্ধান্ত নেবে? আমি বিশ্বাস করি শেলটি "নিহত" প্রদর্শিত হয়েছিল কারণ কিল (9) সংকেত পাওয়ার পরে প্রক্রিয়াটি মারা যায়। যদি লিনাক্স কিল সিগন্যাল প্রেরণ করে তবে কোথাও কোনও সিস্টেম লগ-এ কোনও বার্তা থাকা উচিত যা ব্যাখ্যা করে যে এটি কেন হত্যা করা হয়েছিল?


23
লিনাক্স আমার প্রক্রিয়াটি মেরে ফেলেছে এবং রেডহাটে / ভার / লগ / বার্তাগুলিতে লগইন করেছে
ডিন হিলার

1
আরও দেখুন এই উত্তর unix.stackexchange.com উপর।
রিচার্ড 21

এই ইভেন্টে 3 জন খেলোয়াড় রয়েছে: (1) প্রক্রিয়া যা (সাধারণ কারণ) খুব বেশি মেমরি নেয় এবং OOM অবস্থার কারণ করে (2) কার্নেল যা সিগ্কিল প্রেরণ করে (সিগন্যাল 9) এটি বন্ধ করে দেয় এবং কিছু সিস্টেমে সত্য লগ করে থাকে লগের মতো /var/log/messages(3) যে শেলটির অধীনে প্রক্রিয়াটি চালিত হয় সেই প্রক্রিয়াটি Killedযখন প্রস্থানটি থেকে প্রস্থান স্থিতিটি waitpid(2)
সূচকটি মুদ্রণ

@ ডিনহিলারের উত্তর পড়ার পরে আমি উবুন্টুতে লগ বার্তা পেয়েছি/var/log/syslog
ডিনি

উত্তর:


403

ব্যবহারকারী বা সিসাদমিন প্রোগ্রামটি হত্যা না করলে কার্নেলের কাছে থাকতে পারে। কার্নেলটি ব্যতিক্রমী পরিস্থিতিতে যেমন চরম সংস্থান অনাহার হিসাবে মনে হয় (মেম + সোয়াপ অবসন্নতা মনে করে) কেবল একটি প্রক্রিয়া মারবে।


25
যদি কার্নেলটি প্রক্রিয়াটিকে হত্যা করে তবে এটি কোনও লগে কোনও বার্তা দেবে?
এসবিকিউ

186
আমি সবেমাত্র একটি প্রোগ্রাম লিখেছি যা একটি অনিচ্ছাকৃত লুপে মেমরিটিকে ম্যালোকড করে। সিস্টেমটি ধীর হয়ে যাওয়ার পরে, "কিল্ড" টার্মিনালে প্রদর্শিত হয়েছিল এবং প্রক্রিয়াটি সমাপ্ত হয়েছিল। /Var/log/kern.log ফাইলটিতে সমাপ্তি সম্পর্কে প্রচুর তথ্য রয়েছে। - পয়েন্টারের জন্য ধন্যবাদ।
এসবিকিউ

6
এটা প্রায় অবশ্যই। টিএইং করার সময় আমি এটি অনেক দেখেছি। অনেক ছাত্র তাদের বিষয়বস্তু মুক্ত করতে ভুলে যেত এবং অ্যাপসটি শেষ পর্যন্ত 3 গিগাবাইট ভার্চুয়াল মেমরির ব্যবহারে পৌঁছায়। এই পয়েন্টটি আঘাত করার সাথে সাথে এটি মারা যায়।
হার্মেস

8
যখন "প্রোগ্রাম কেবল ক্র্যাশ", যে হয় ওএস আসলে প্রক্রিয়া নিধন!
বারেন্ড জেন্ড্রিসেক

79
dmesgকার্নেল লগ দেখতে ব্যবহার করুন : আমি এখানে চূড়ান্ত ভার্চুয়াল মেমরির ব্যবহারের কারণে কার্নেল দ্বারা আমার পাইথন প্রক্রিয়াগুলি মেরেছি।
caneta

272

চেষ্টা করুন:

dmesg -T| grep -E -i -B100 'killed process'

যেখানে -B100হত্যার আগে লাইন সংখ্যাটি ইঙ্গিত দেয়।

ফেরত -T ম্যাক OS এ।


6
অবগতির জন্য, থেকে info egrep: "egrep, grep -E হিসাবে একই ... পারেন egrep বা fgrep যেমন সরাসরি আবাহন অসমর্থিত হয়েছে।"
এয়ার

9
একটি সহজ প্যাটার্ন যদি মত 'killed process'আপনি শুধু ব্যবহার করতে পারেন grepপরিবর্তে egrepঅন্য কোন পরিবর্তনের সঙ্গে। আরও জটিল প্যাটার্নের জন্য, আপনি যেমন প্রতিস্থাপন পরিবর্তন egrep -i -B100 'foo|ba[rz]'করতে পারেন grep -E -i -B100 'foo|ba[rz]'এই প্রশ্নোত্তর আরও বিশদ দেয়।
এয়ার

2
আমি dmesg -Tপাঠযোগ্য টাইমস্ট্যাম্পগুলি পেতে যাতে ব্যবহারের পরামর্শ
দিই

171

এটিকে বিষয়টির একটি ভাল নিবন্ধের মতো দেখাচ্ছে: ওওএম ঘাতককে টেম্পিং করা

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

সম্পাদনা করুন: এবং এখানে আরও একটি নিবন্ধ রয়েছে যা একটি প্রক্রিয়াটি কীভাবে চয়ন করা হয় তা বেশ ভালভাবে ব্যাখ্যা করে (কিছু কার্নেল কোড উদাহরণ দিয়ে টীকাযুক্ত)। এ সম্পর্কে দুর্দান্ত বিষয়টি হ'ল এতে বিভিন্ন বিধিগুলির পিছনে যুক্তি সম্পর্কে কিছু মন্তব্য অন্তর্ভুক্ত রয়েছে badness()


3
আমি নিবন্ধের লিঙ্কগুলি সত্যিই পছন্দ করি। আমি এই বিষয়ে আগ্রহী যে কেউ সেগুলি পড়ার পরামর্শ দেব - বিশেষত lwn নিবন্ধে মন্তব্যগুলি।
জন আনা

4
"অন্য প্রক্রিয়া দ্বারা দাবি করা হলেও লিনাক্স এটিকে স্থান দেবে" এটি ভার্চুয়াল মেমরিটি কীভাবে কাজ করে তা পুরোপুরি নয় ...
মাকিং হাঁস

1
নিবন্ধটি বেশ পুরানো (২০০৯) এবং নিবন্ধে প্রস্তাবিত সমস্ত কার্যকারিতা মূলধারায় নেই।
অ্যালেক্স

50

আমাকে প্রথমে ব্যাখ্যা করতে দিন কখন ও কেন ওমকিলারকে ডাকা হয়?

বলুন আপনার কাছে 512 র‌্যাম + 1 জিবি অদলবদল মেমরি রয়েছে। তাত্ত্বিকভাবে, আপনার সিপিইউতে মোট 1.5 জিবি ভার্চুয়াল মেমরির অ্যাক্সেস রয়েছে।

এখন, কিছু সময়ের জন্য মোট স্মৃতিতে 1.5 গিগাবাইটের মধ্যে সবকিছু ঠিকঠাক চলছে। তবে হঠাৎ করেই (বা ধীরে ধীরে) আপনার সিস্টেম আরও এবং আরও বেশি মেমরি গ্রাস করতে শুরু করেছে এবং এটি ব্যবহৃত মোট মেমরির 95% এর কাছাকাছি পৌঁছেছে।

এখন বলুন যে কোনও প্রক্রিয়া কর্নেল থেকে মেমরির বিশাল অংশের জন্য অনুরোধ করেছে। কার্নেল উপলব্ধ মেমরির জন্য পরীক্ষা করে দেখুন এবং এটি আপনার প্রক্রিয়াটিকে আরও মেমরি বরাদ্দ করতে পারে এমন কোনও উপায় নেই। সুতরাং এটি OOMKiller ( http://linux-mm.org/OOM ) কে কিছু মেমোরি কলিং / ইনভোকেটিং মুক্ত করার চেষ্টা করবে ।

ওমকিলারের প্রতিটি প্রক্রিয়ার জন্য র‌্যাঙ্কটি অর্জন করার নিজস্ব অ্যালগরিদম রয়েছে। সাধারণত কোন প্রক্রিয়াটি বেশি স্মৃতি ব্যবহার করে তা হত্যার শিকার হয়।

OOMKiller এর লগগুলি আমি কোথায় পেতে পারি?

সাধারণত / var / লগ ডিরেক্টরিতে। হয় /var/log/kern.log বা / var / লগ / dmesg

আশা করি এটা তোমাকে সাহায্য করবে।

কিছু সাধারণ সমাধান:

  1. স্মৃতিশক্তি বৃদ্ধি (অদলবদল নয়)
  2. আপনার প্রোগ্রামে মেমরি ফাঁস খুঁজুন এবং সেগুলি ঠিক করুন
  3. যে কোনও প্রক্রিয়া গ্রাস করতে পারে মেমরিটিকে সীমাবদ্ধ করুন (উদাহরণস্বরূপ JVM মেমরি JAVA_OPTS ব্যবহার করে সীমাবদ্ধ করা যেতে পারে)
  4. লগ এবং গুগল দেখুন :)

17

এটি লিনাক্স আউট মেমরি ম্যানেজার (ওওএম) । আপনার প্রক্রিয়া 'কারণে নির্বাচন করা হয়েছিল অসাধুতা recentness সংমিশ্রণ, বাসিন্দা আকার (ব্যবহারে মেমরি, বরং শুধু বরাদ্দ) এবং অন্যান্য কারণের -'।

sudo journalctl -xb

আপনি একটি বার্তা দেখতে পাবেন:

Jul 20 11:05:00 someapp kernel: Mem-Info:
Jul 20 11:05:00 someapp kernel: Node 0 DMA per-cpu:
Jul 20 11:05:00 someapp kernel: CPU    0: hi:    0, btch:   1 usd:   0
Jul 20 11:05:00 someapp kernel: Node 0 DMA32 per-cpu:
Jul 20 11:05:00 someapp kernel: CPU    0: hi:  186, btch:  31 usd:  30
Jul 20 11:05:00 someapp kernel: active_anon:206043 inactive_anon:6347 isolated_anon:0
                                    active_file:722 inactive_file:4126 isolated_file:0
                                    unevictable:0 dirty:5 writeback:0 unstable:0
                                    free:12202 slab_reclaimable:3849 slab_unreclaimable:14574
                                    mapped:792 shmem:12802 pagetables:1651 bounce:0
                                    free_cma:0
Jul 20 11:05:00 someapp kernel: Node 0 DMA free:4576kB min:708kB low:884kB high:1060kB active_anon:10012kB inactive_anon:488kB active_file:4kB inactive_file:4kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present
Jul 20 11:05:00 someapp kernel: lowmem_reserve[]: 0 968 968 968
Jul 20 11:05:00 someapp kernel: Node 0 DMA32 free:44232kB min:44344kB low:55428kB high:66516kB active_anon:814160kB inactive_anon:24900kB active_file:2884kB inactive_file:16500kB unevictable:0kB isolated(anon):0kB isolated
Jul 20 11:05:00 someapp kernel: lowmem_reserve[]: 0 0 0 0
Jul 20 11:05:00 someapp kernel: Node 0 DMA: 17*4kB (UEM) 22*8kB (UEM) 15*16kB (UEM) 12*32kB (UEM) 8*64kB (E) 9*128kB (UEM) 2*256kB (UE) 3*512kB (UM) 0*1024kB 0*2048kB 0*4096kB = 4580kB
Jul 20 11:05:00 someapp kernel: Node 0 DMA32: 216*4kB (UE) 601*8kB (UE) 448*16kB (UE) 311*32kB (UEM) 135*64kB (UEM) 74*128kB (UEM) 5*256kB (EM) 0*512kB 0*1024kB 1*2048kB (R) 0*4096kB = 44232kB
Jul 20 11:05:00 someapp kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
Jul 20 11:05:00 someapp kernel: 17656 total pagecache pages
Jul 20 11:05:00 someapp kernel: 0 pages in swap cache
Jul 20 11:05:00 someapp kernel: Swap cache stats: add 0, delete 0, find 0/0
Jul 20 11:05:00 someapp kernel: Free swap  = 0kB
Jul 20 11:05:00 someapp kernel: Total swap = 0kB
Jul 20 11:05:00 someapp kernel: 262141 pages RAM
Jul 20 11:05:00 someapp kernel: 7645 pages reserved
Jul 20 11:05:00 someapp kernel: 264073 pages shared
Jul 20 11:05:00 someapp kernel: 240240 pages non-shared
Jul 20 11:05:00 someapp kernel: [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
Jul 20 11:05:00 someapp kernel: [  241]     0   241    13581     1610      26        0             0 systemd-journal
Jul 20 11:05:00 someapp kernel: [  246]     0   246    10494      133      22        0         -1000 systemd-udevd
Jul 20 11:05:00 someapp kernel: [  264]     0   264    29174      121      26        0         -1000 auditd
Jul 20 11:05:00 someapp kernel: [  342]     0   342    94449      466      67        0             0 NetworkManager
Jul 20 11:05:00 someapp kernel: [  346]     0   346   137495     3125      88        0             0 tuned
Jul 20 11:05:00 someapp kernel: [  348]     0   348    79595      726      60        0             0 rsyslogd
Jul 20 11:05:00 someapp kernel: [  353]    70   353     6986       72      19        0             0 avahi-daemon
Jul 20 11:05:00 someapp kernel: [  362]    70   362     6986       58      18        0             0 avahi-daemon
Jul 20 11:05:00 someapp kernel: [  378]     0   378     1621       25       8        0             0 iprinit
Jul 20 11:05:00 someapp kernel: [  380]     0   380     1621       26       9        0             0 iprupdate
Jul 20 11:05:00 someapp kernel: [  384]    81   384     6676      142      18        0          -900 dbus-daemon
Jul 20 11:05:00 someapp kernel: [  385]     0   385     8671       83      21        0             0 systemd-logind
Jul 20 11:05:00 someapp kernel: [  386]     0   386    31573      153      15        0             0 crond
Jul 20 11:05:00 someapp kernel: [  391]   999   391   128531     2440      48        0             0 polkitd
Jul 20 11:05:00 someapp kernel: [  400]     0   400     9781       23       8        0             0 iprdump
Jul 20 11:05:00 someapp kernel: [  419]     0   419    27501       32      10        0             0 agetty
Jul 20 11:05:00 someapp kernel: [  855]     0   855    22883      258      43        0             0 master
Jul 20 11:05:00 someapp kernel: [  862]    89   862    22926      254      44        0             0 qmgr
Jul 20 11:05:00 someapp kernel: [23631]     0 23631    20698      211      43        0         -1000 sshd
Jul 20 11:05:00 someapp kernel: [12884]     0 12884    81885     3754      80        0             0 firewalld
Jul 20 11:05:00 someapp kernel: [18130]     0 18130    33359      291      65        0             0 sshd
Jul 20 11:05:00 someapp kernel: [18132]  1000 18132    33791      748      64        0             0 sshd
Jul 20 11:05:00 someapp kernel: [18133]  1000 18133    28867      122      13        0             0 bash
Jul 20 11:05:00 someapp kernel: [18428]    99 18428   208627    42909     151        0             0 node
Jul 20 11:05:00 someapp kernel: [18486]    89 18486    22909      250      46        0             0 pickup
Jul 20 11:05:00 someapp kernel: [18515]  1000 18515   352905   141851     470        0             0 npm
Jul 20 11:05:00 someapp kernel: [18520]     0 18520    33359      291      66        0             0 sshd
Jul 20 11:05:00 someapp kernel: [18522]  1000 18522    33359      294      64        0             0 sshd
Jul 20 11:05:00 someapp kernel: [18523]  1000 18523    28866      115      12        0             0 bash
Jul 20 11:05:00 someapp kernel: Out of memory: Kill process 18515 (npm) score 559 or sacrifice child
Jul 20 11:05:00 someapp kernel: Killed process 18515 (npm) total-vm:1411620kB, anon-rss:567404kB, file-rss:0kB

12

যেমনটি ডব্লিউসি এবং অ্যাডাম জ্যাসকিউইজ জানিয়েছে, অপরাধী সম্ভবত ওওএম কিলার। যাইহোক, পরবর্তী পরবর্তী প্রশ্নটি: আমি কীভাবে এটি প্রতিরোধ করব?

বিভিন্ন উপায় আছে:

  1. আপনি যদি পারেন তবে আপনার সিস্টেমকে আরও বেশি র্যাম দিন (যদি এটি কোনও ভিএম হতে পারে তবে সহজ)
  2. নিশ্চিত করুন যে ওওএম ঘাতক একটি আলাদা প্রক্রিয়া চয়ন করেছেন।
  3. ওওএম কিলারটি অক্ষম করুন
  4. একটি লিনাক্স ডিস্ট্রো চয়ন করুন যা ওওম কিলারটি অক্ষম করে।

আমি (2) কার্যকরভাবে প্রয়োগ করা সহজ হিসাবে এই নিবন্ধটি ধন্যবাদ ।


2
এটি আমার জন্য র‌্যাম ছিল। আমি 2 থেকে 4 জিবি র‌্যাম আপগ্রেড করেছি এবং সমস্যাটি চলে গেছে। এখন বিলটি নিয়ে সমস্যাটি রয়েছে: পি
গাস

9

সীমা সম্পদ পিএএম মডিউল সৃষ্ট ঠিক ফলাফল আপনি বর্ণনা: আমার প্রক্রিয়া পাঠ্য সহ রহস্যজনকভাবে মারা যান নিহত কনসোল উইন্ডোতে। কোন লগ আউটপুট মধ্যে তন্ন তন্ন syslog- র কিংবা মধ্যে kern.logশীর্ষ প্রোগ্রাম আমাকে সাহায্য করে CPU ব্যবহারের এক ঠিক পর মিনিট আমার প্রক্রিয়া নষ্ট হয়েছে পরার আবিষ্কার।


8

সিস্টেমট্যাপের মতো একটি সরঞ্জাম (বা ট্রেসার) কার্নেল সিগন্যাল-সংক্রমণ যুক্তি এবং প্রতিবেদন করতে পারে। উদাহরণস্বরূপ, https://sourceware.org/systemtap/example/process/sigmon.stp

# stap .../sigmon.stp -x 31994 SIGKILL
   SPID     SNAME            RPID  RNAME            SIGNUM SIGNAME
   5609     bash             31994 find             9      SIGKILL

ifসেই স্ক্রিপ্টের ফিল্টারিং ব্লকটি স্বাদে সামঞ্জস্য করা যায়, বা সিস্টেমওয়াদে সংকেত ট্র্যাফিকের সন্ধানে নির্মূল করা যায়। ব্যাকট্রেস সংগ্রহ করে কারণগুলি আরও বিচ্ছিন্ন করা যেতে পারে ( যথাক্রমে কার্নেল- এবং ইউজারস্পেসের জন্য একটি print_backtrace()এবং / অথবা print_ubacktrace()প্রোবের সাথে যুক্ত করুন)।


4

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

এক্ষেত্রে একটি সমাধান হ'ল বৃহত্তর সংস্থান সহ একটি সারি খুঁজে পাওয়া বা জমা দেওয়ার ক্ষেত্রে বৃহত্তর সংস্থান প্রয়োজনীয়তা সংজ্ঞায়িত করা।

আপনি পর্যালোচনা করতে পারেন man ulimit

যদিও আমি মনে করি না যে এর ulimitফলে Killedকিছুটা সময় হয়েছে যার পরে আমার এটি প্রয়োজন ছিল।


2

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

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

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


1
আইআইআরসি, ওমকিলারকে কেবলমাত্র সর্বশেষ রিসোর্ট হিসাবে ডাকা হয়েছিল। আমি মনে করি যে সিস্টেম ওওমকিলারকে জোর করে বলার আগে কিছু অ্যাপসকে দয়া করে কিছু সংস্থান ছেড়ে দিতে অনুরোধ করে এমনকি বিভিন্ন অ্যাপ্লিকেশনে একটি সংকেত প্রেরণ করবে I লম্বা দানার সাথে নিন, কারণ এটি অনেক দিন হয়ে গেছে ...
rmeador

1
আপনি এটি চালাতে পারবেন না। এটি কার্নেলের মধ্যে বেকড, তবে এটি কীভাবে চালিত হয় তার সুর দেওয়ার বিকল্প রয়েছে এবং এটি কার্যকর হওয়ার সম্ভাবনা রয়েছে। যখন পুরো সিস্টেমটি স্মৃতিশক্তি থেকে দূরে থাকে তখন এটি সঞ্চালিত হয়, যখন কোনও নির্দিষ্ট প্রক্রিয়া খুব বেশি ব্যবহার করে না। আরও তথ্যের জন্য আমার উত্তর দেখুন।
অ্যাডাম জ্যাসকিউইচ

6
ওমকিলার না চালানো বেশ সহজ। echo "2" > /proc/sys/vm/overcommit_memory
আর .. গীটহাব বন্ধ করুন ICE

রেড হ্যাট এটিকে পরিবর্তন করার অনুমতি দিতে চায় না: sudo echo "2" > /proc/sys/vm/overcommit_memory/ proc / sys / vm / overcommit_memory: অনুমতি অস্বীকার করা হয়েছে
ব্রেন্ট ফাউস্ট

2
চেষ্টা করুনecho 2 | sudo tee /proc/sys/vm/overcommit_memory
হাইপারশেডসি

2

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

কিউ কর্মী দিয়ে চালানো --timeout=600এবং --memory=1024আমার জন্য সমস্যা স্থির।


0

ব্যবহারকারীর কিল বা কন্ট্রোল + সি ব্যবহার করে তার নিজস্ব প্রোগ্রামগুলি মেরে ফেলার ক্ষমতা রয়েছে তবে আমি বুঝতে পারি যে এটি ঘটেনি, এবং ব্যবহারকারী আপনার কাছে অভিযোগ করেছিলেন।

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

আপনি যদি সিসাদমিন না হন, সিসাদমিন সিপিইউ, র‌্যাম, অর্ট ডিস্ক ব্যবহার এবং তাদের ছাড়িয়ে যাওয়া অটো-কিল প্রক্রিয়াগুলিতে কোটা সেট আপ করতে পারে।

এই অনুমানগুলি ব্যতীত, আমি প্রোগ্রাম সম্পর্কে আরও তথ্য ছাড়া নিশ্চিত নই।


6
সিটিআরএল-সি আমার স্মরণে যেমন ওপি রিপোর্ট করেছে (সাইন্ট (2) তার চেয়ে আলাদা কিল পাঠায়, যেখানে প্রোগ্রামটি একটি সিগকল (9) পেয়েছে।
পাওয়ারলর্ড

0

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


আমি একই সমস্যা দেখছি। কোন প্রক্রিয়াটি আপনার প্রক্রিয়াটিকে হত্যা করেছে তা আপনি কীভাবে আবিষ্কার করলেন? মনে হয় একটি প্রক্রিয়াতে কে সিগিলকে প্রেরণ করে তা পরীক্ষা করার জন্য একটি সরঞ্জাম রয়েছে।
হাওয়ে

0

অদলবদলের আকার বাড়িয়ে এই সমস্যাটি সমাধান করুন :

/ubuntu/1075505/how-do-i-increase-swapfile-in-ubuntu-18-04


3
দয়া করে অন্যান্য স্ট্যাক এক্সচেঞ্জের প্রশ্নের লিঙ্ক-কেবল উত্তর পোস্ট করবেন না। পরিবর্তে, এখানে উত্তরের প্রয়োজনীয় অংশগুলি অন্তর্ভুক্ত করুন এবং এই নির্দিষ্ট প্রশ্নের উত্তরটি দর্জি করুন।
ডাবল-বীপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.