কেন লিনাক্স ৩.০.০-১১-২ সার্ভারে কেওয়ার্কার এতগুলি সংস্থান গ্রহণ করছে?


19

গত শুক্রবার আমি আমার উবুন্টু সার্ভারকে ১১.১০ তে আপগ্রেড করেছি, যা এখন 3.0.০.০-১২- সার্ভার কার্নেল দিয়ে চলছে। তার পর থেকে সামগ্রিক পারফরম্যান্স নাটকীয়ভাবে হ্রাস পেয়েছে। আপগ্রেড করার আগে সিস্টেমের বোঝা প্রায় 0.3 ছিল, তবে বর্তমানে এটি 8 টি কোর সিপিইউ সিস্টেমে 16 গিগাবাইট র‌্যাম (10 জিবি ফ্রি, কোনও স্ব্যাপ ব্যবহৃত নেই) রয়েছে।

আমি বিটিআরএসএফ ফাইল সিস্টেম ড্রাইভার এবং আন্ডারলিং এমডি অ্যারেটিকে দোষ দিতে চলেছি, কারণ [এমডি 1_ ভয় 1] এবং [বিটিআরএফএস-ট্রান্সসিটি] প্রচুর সংস্থান গ্রহণ করেছে। তবে সমস্ত [কেকর্মার / *: *] আরও অনেক বেশি গ্রাস করে।

sar শুক্রবার থেকে ক্রমাগত এর অনুরূপ কিছু আউটপুট বেরিয়েছে:

11:25:01        CPU     %user     %nice   %system   %iowait    %steal     %idle 
11:35:01        all      1,55      0,00     70,98      8,99      0,00     18,48 
11:45:01        all      1,51      0,00     68,29     10,67      0,00     19,53 
11:55:01        all      1,40      0,00     65,52     13,53      0,00     19,55 
12:05:01        all      0,95      0,00     66,23     10,73      0,00     22,10 

এবং iostatএকটি খুব খারাপ লেখার হার নিশ্চিত করে:

sda             129,26      3059,12       614,31  258226022   51855269          
sdb              98,78        24,28      3495,05    2049471  295023077          
md1             191,96       202,63       611,95   17104003   51656068          
md0               0,01         0,02         0,00       1980        109          

প্রশ্নটি হল: কে ওয়ার্কার থ্রেডগুলি কেন এতগুলি সংস্থান (এবং কোনটি) ব্যবহার করে তা আমি কীভাবে সন্ধান করব? বা আরও ভাল: এটি কি 3.0 কার্নেলের সাথে একটি পরিচিত সমস্যা, এবং আমি এটি কার্নেল পরামিতিগুলির সাথে টুইঙ্ক করতে পারি?

সম্পাদনা:

বিটিআরএফএস বিকাশকারীদের দ্বারা প্রস্তাবিত হিসাবে আমি কার্নেলটি ব্র্যান্ডের নতুন সংস্করণ 3.1 এ আপডেট করেছি। কিন্তু দুর্ভাগ্যক্রমে এটি কিছুই পরিবর্তন করেনি।


দেখুন askubuntu.com/questions/33640/... । আমি একবারে কার্নেল মডিউলগুলি সরিয়ে ফেলার জন্য তার পরামর্শগুলিতে যুক্ত করব এটি দেখার জন্য এটি কোনও নির্দিষ্ট কিনা।
শন জে গফ

@ শনজেজ.ফফ এটি পরীক্ষা এবং ত্রুটির দ্বারা প্রদত্ত কেবল একটি কাজ ound তবে আমি কীভাবে কিছু (ডিবাগিং) সরঞ্জাম দিয়ে অপরাধীকে সনাক্ত করতে পারি তা জানতে চাই। এটির পরে আমাকে প্রশ্নের মধ্যে কার্নেল মডিউল নিয়ে যাওয়া উচিত।
mailq

pcie_ports=compatবা দিয়ে বুট করার চেষ্টা করুন pcie_ports=native। (প্রথমে 'নেটিভ' চেষ্টা করুন It's সমস্যাটি সমাধানের সম্ভাবনা কম তবে অন্যান্য সমস্যার কারণ হওয়ার সম্ভাবনাও কম))
ডেভিড শোয়ার্জ

পছন্দ করেছেন সমস্যাটি এড়াতে এটি কেবল একটি সমাধান হবে। তবে সমাধানটি সম্পর্কে আরও বিস্তারিত জানাতে আমার নিজের সমস্যাটি সনাক্ত করতে হবে। আমি কীভাবে কারণটি সনাক্ত করতে পারি?
মেলকিউ

উত্তর:


18

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

মূলত, এটি করার দুটি উপায় রয়েছে:

$ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
$ cat /sys/kernel/debug/tracing/trace_pipe > out.txt
(wait a few secs)

এর জন্য আপনার কার্নেলের মধ্যে সংকলন করার জন্য এবং এটিকে সক্ষম করার জন্য আপনার ftrace প্রয়োজন :

mount -t debugfs nodev /sys/kernel/debug

লিনাক্সের ফাংশন ট্রেসার সুবিধাগুলি সম্পর্কে আরও তথ্য ftrace.txt ডকুমেন্টেশনে উপলব্ধ

এটি থ্রেডগুলি কী করছে তা আউটপুট দেয় এবং একাধিক ছোট কাজ সন্ধানের জন্য দরকারী।

cat /proc/THE_OFFENDING_KWORKER/stack

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


ধন্যবাদ। কিছু তথ্য সরবরাহের জন্য যথেষ্ট দীর্ঘ না হওয়া পর্যন্ত আমাকে বারবার স্ট্যাক ফাইলটি ক্যাট করতে হয়েছিল। আমার ক্ষেত্রে, আমি "acpi_ds_create_operands" এবং "ইনপুট_প্লেড_ডভাইস_কর্ম" পেয়েছি। একটি ভাগ্যবান অনুমান আমাকে -Eঘুমানোর বিকল্পটি চেষ্টা করে , এবং সিপিইউ ব্যবহারটি অদৃশ্য হয়ে যায়!
জোয়েটউইডল

5

সমাধানটি হ'ল: কারণটি কীভাবে সন্ধান করতে হয় তা আমি জানি না। এখনও পর্যন্ত কেউ আমাকে বলেনি।

তবে বিটিআরএফএস বিকাশকারীদের সাথে কথা বলে খুব স্বল্প সময়ের মধ্যে অনেকগুলি ছোট ফাইল লেখার সময় বিটিআরএফএস ড্রাইভারদের মধ্যে একটি বাগ প্রকাশিত হয়েছিল। এটি 3.0 থেকে 3.1 পর্যন্ত কার্নেলগুলিতে একটি সমস্যা। সম্ভবত এটি 3.2 এ স্থির হয়ে যায়।

এর মধ্যে আমি বর্তমান কার্নেলের জন্য একটি প্যাচ পেয়েছি যা সমস্যার সমাধান করেছে।


2

আমারও একি দশা; কেওয়ার্কারের থ্রেড স্ট্যাকের দিকে তাকিয়ে:

while true ; do clear ; grep -n ^ /proc/24910/stack | sort -rn | cut -d: -f 2- ; sleep 1 ; done

[<ffffffffffffffff>] 0xffffffffffffffff
[<ffffffff810908f0>] kthread+0x0/0xe0
[<ffffffff81576432>] ret_from_fork+0x42/0x70
[<ffffffff810908f0>] kthread+0x0/0xe0
[<ffffffff810909b1>] kthread+0xc1/0xe0
[<ffffffff8108b520>] worker_thread+0x0/0x550
[<ffffffff8108b573>] worker_thread+0x53/0x550
[<ffffffff8108aa4b>] process_one_work+0x14b/0x420
[<ffffffff81405a3d>] rpm_idle+0x1ad/0x220
[<ffffffff8140509d>] __rpm_callback+0x2d/0xb0
[<ffffffffa01aef16>] usb_runtime_idle+0x26/0x30 [usbcore]
[<ffffffffa01aeef0>] usb_runtime_idle+0x0/0x30 [usbcore]
[<ffffffff8140686c>] __pm_runtime_suspend+0x5c/0x90
[<ffffffff81405b19>] __pm_runtime_idle+0x69/0x90
[<ffffffff81405295>] rpm_suspend+0x105/0x620
[<ffffffff8140513f>] rpm_callback+0x1f/0x70
[<ffffffff8140509d>] __rpm_callback+0x2d/0xb0
[<ffffffffa01aee50>] usb_runtime_suspend+0x0/0x80 [usbcore]
[<ffffffffa01aee7e>] usb_runtime_suspend+0x2e/0x80 [usbcore]
[<ffffffffa01adc4f>] usb_suspend_both+0xef/0x1f0 [usbcore]
[<ffffffffa01adb06>] usb_resume_interface.isra.6+0xa6/0x100 [usbcore]
[<ffffffffa01a0c63>] hub_resume+0x23/0x60 [usbcore]
[<ffffffffa01a0636>] hub_activate+0xc6/0x5c0 [usbcore]
[<ffffffffa01a9d3f>] usb_kill_urb+0x3f/0xa0 [usbcore]
[<ffffffffa019d249>] hub_port_status+0xd9/0x120 [usbcore]
[<ffffffff81088a4f>] __queue_work+0x12f/0x340
[<ffffffff810888b6>] insert_work+0x46/0xb0
[<ffffffffa01aa6d4>] usb_control_msg+0xc4/0x110 [usbcore]
[<ffffffffa01aa55a>] usb_start_wait_urb+0x9a/0x150 [usbcore]
[<ffffffff810a36f7>] update_curr+0xd7/0x120

আমি বুঝতে পেরেছি এটি ইউএসবি মডিউল। আমি এর আগে অন্য একটি মেশিনে ব্লটিহলি সমস্ত ইউএসবি rmmod'd করেছি এবং [uex] এইচসিআই মডিউলগুলি বুঝতে পেরেছি যে আমি কীবোর্ডটি বন্ধ করে দিয়েছি (এমনকি সিটিআরএল-শিফট-সিসারকিউ-ইউও নয়!), তাই আমি এটি শেষ করেছিলাম:

MODS="uvcvideo ohci_hcd ehci_hcd xhci_hcd ohci_pci ehci_pci xhci_pci usbcore"
( echo $MODS $MODS | xargs -n 1 rmmod -v ; sleep 3 ; echo $MODS | xargs -n 1 modprobe -v ; )

root@hp:~# ( echo $MODS $MODS | xargs -n 1 rmmod -v ; sleep 3 ; echo $MODS | xargs -n 1 modprobe -v ; )
rmmod: ERROR: Module ohci_hcd is in use by: ohci_pci
rmmod: ERROR: Module ehci_hcd is in use by: ehci_pci
rmmod: ERROR: Module xhci_hcd is in use by: xhci_pci
rmmod: ERROR: Module uvcvideo is not currently loaded
rmmod: ERROR: Module ohci_pci is not currently loaded
rmmod: ERROR: Module ehci_pci is not currently loaded
rmmod: ERROR: Module xhci_pci is not currently loaded
insmod /lib/modules/4.1.0-2-amd64/kernel/drivers/media/usb/uvc/uvcvideo.ko 
insmod /lib/modules/4.1.0-2-amd64/kernel/drivers/usb/host/ehci-hcd.ko 
insmod /lib/modules/4.1.0-2-amd64/kernel/drivers/usb/host/ohci-hcd.ko 
insmod /lib/modules/4.1.0-2-amd64/kernel/drivers/usb/host/xhci-hcd.ko 
insmod /lib/modules/4.1.0-2-amd64/kernel/drivers/usb/host/ehci-pci.ko 
insmod /lib/modules/4.1.0-2-amd64/kernel/drivers/usb/host/ohci-pci.ko 
insmod /lib/modules/4.1.0-2-amd64/kernel/drivers/usb/host/xhci-pci.ko 

কৌশলটি করেছেন:

grep -n ^ /proc/24910/stack | sort -rn | cut -d: -f 2-
[<ffffffffffffffff>] 0xffffffffffffffff
[<ffffffff810908f0>] kthread+0x0/0xe0
[<ffffffff81576432>] ret_from_fork+0x42/0x70
[<ffffffff810908f0>] kthread+0x0/0xe0
[<ffffffff810909b1>] kthread+0xc1/0xe0
[<ffffffff8108b520>] worker_thread+0x0/0x550
[<ffffffff8108b5ec>] worker_thread+0xcc/0x550

সুতরাং আমার প্রধান সন্দেহভাজন এই গ্যাজেটটি: আরটিএল ৮৩৩৩ বি * ওয়াইফাই + ব্লুটুথ মডিউল। আমি এখন ভাবছি যে পাওয়ার-ম্যানেজমেন্ট কোডটি বুঝতে পারে এটি একই ডিভাইস যদি এটি উদাহরণস্বরূপ একটি অব্যবহৃত বিটি অ্যাডাপ্টারের পাওয়ারডাউন করার চেষ্টা করে।

প্রসঙ্গ:

root@hp:~# lsusb
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 002: ID 0c45:651b Microdia 
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 002: ID 0bda:b001 Realtek Semiconductor Corp. 
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 007 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@hp:~# lsmod | grep usb
    btusb                  45056  0
    btbcm                  16384  1 btusb
    btintel                16384  1 btusb
    bluetooth             438272  5 bnep,btbcm,btusb,btintel
    usbcore               200704  8 btusb,uvcvideo,ohci_hcd,ohci_pci,ehci_hcd,ehci_pci,xhci_hcd,xhci_pci
    usb_common             16384  1 usbcore

root@hp:~# lsb_release -a
    No LSB modules are available.
    Distributor ID:    Debian
    Description:    Debian GNU/Linux stable-updates (sid)
    Release:    stable-updates
    Codename:    sid

root@hp:~# uname -a
    Linux hp 4.1.0-2-amd64 #1 SMP Debian 4.1.6-1 (2015-08-23) x86_64 GNU/Linux

root@hp:~# dmesg | tail -n 20
    [97865.088740] usb 2-4: SerialNumber: HP Webcam
    [97865.091557] uvcvideo: Found UVC 1.00 device HP Webcam (0c45:651b)
    [97865.105948] input: HP Webcam as /devices/pci0000:00/0000:00:13.2/usb2/2-4/2-4:1.0/input/input17
    [97865.189817] usb 3-3: new full-speed USB device number 2 using ohci-pci
    [97865.350981] usb 3-3: No LPM exit latency info found, disabling LPM.
    [97865.368958] usb 3-3: New USB device found, idVendor=0bda, idProduct=b001
    [97865.368969] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [97865.368976] usb 3-3: Product: Bluetooth Radio 
    [97865.368981] usb 3-3: Manufacturer: Realtek 
    [97865.368985] usb 3-3: SerialNumber: 00e04c000001
    [97865.375859] Bluetooth: hci0: rtl: examining hci_ver=06 hci_rev=000b lmp_ver=06 lmp_subver=8723
    [97865.375867] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_fw.bin
    [97865.375896] usb 3-3: firmware: failed to load rtl_bt/rtl8723b_fw.bin (-2)
    [97865.375902] usb 3-3: Direct firmware load for rtl_bt/rtl8723b_fw.bin failed with error -2
    [97865.375907] Bluetooth: hci0: Failed to load rtl_bt/rtl8723b_fw.bin
    [97865.397812] Bluetooth: hci0: rtl: examining hci_ver=06 hci_rev=000b lmp_ver=06 lmp_subver=8723
    [97865.397821] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_fw.bin
    [97865.397850] usb 3-3: firmware: failed to load rtl_bt/rtl8723b_fw.bin (-2)
    [97865.397856] usb 3-3: Direct firmware load for rtl_bt/rtl8723b_fw.bin failed with error -2
    [97865.397861] Bluetooth: hci0: Failed to load rtl_bt/rtl8723b_fw.bin

-2

echo N >/sys/module/drm_kms_helper/parameters/poll (রুট মোডে)

ইন্টেল গ্রাফিক কার্ডে সমস্যা


5
আপনি কীভাবে জানবেন যে এটিই কারণ?
ভোনব্র্যান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.