ওএস এক্স-এর এলসফ এত হাস্যকরভাবে ধীর?


36

আমি বুঝতে পারি না কেন আমার ম্যাকের (10.8.2, ম্যাকবুক প্রো) এত কম ধীরে ধীরে লসফ।

আমার ম্যাকে lsofএক মিনিটেরও বেশি সময় লাগে:

$ touch /tmp/testfile
$ time lsof /tmp/testfile

real   1m16.483s
user   0m0.029s
sys    1m15.969s

একটি সাধারণ লিনাক্স বাক্সে, উবুন্টু 12.04 চলমান lsofসময় লাগে 20 এমএস:

$ touch /tmp/testfile
$ time lsof /tmp/testfile

real   0m0.023s
user   0m0.008s
sys    0m0.012s

যদি আমি চালিত করি lsof -n(ডিএনএস লুকআপ এড়াতে) সমস্যাটি বজায় থাকে । আরও, আমি lsofব্যবহার করে কোন সিস্টেম কলগুলি করা হচ্ছে তা যাচাই করার চেষ্টা করেছি dtrussএবং দেখেছি এটি proc_infoকয়েক হাজার বার কল করছে:

$ sudo dtruss lsof /tmp/testfile 2> /tmp/dump
$ cat /tmp/dump | sort | uniq -c | sort -nr | head
10000 proc_info(0x2, 0x1199, 0x8) = 1272 0
 6876 proc_info(0x2, 0x45, 0x8) = 1272 0
 2360 proc_info(0x2, 0x190D, 0x8) = 1272 0
 1294 proc_info(0x2, 0xFF, 0x8) = 1272 0
 1152 proc_info(0x2, 0x474, 0x8) = 1272 0
 1079 proc_info(0x2, 0x2F, 0x8) = 1272 0
  709 proc_info(0x2, 0xFE, 0x8) = 1272 0
  693 proc_info(0x2, 0x1F, 0x8) = 1272 0
  623 proc_info(0x2, 0x11A, 0x8) = 1272 0
  528 proc_info(0x2, 0xF7, 0x8) = 1272 0

কোন ধারনা? আমি এই পরীক্ষাগুলি চালিয়েছিlsof এবং ওএস এক্স (4.85) এর সাথে অন্তর্ভুক্ত সংস্করণ এবং সেই সাথে ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ (4.87) এর সর্বশেষ সংস্করণ উভয়ই ব্যবহার করে একই ফলাফল পেয়েছি

(কৌতূহলের জন্য, এই পারফরম্যান্সে আমি হতাশ হওয়ার কারণটি হ'ল আমি যখন ছবিগুলি এভারনোটে টেনে আনি, lsofতখন ফাইলটি অনুলিপি করার প্রক্রিয়াটি চালিত হয়, প্রতিবার যখন আমি একটি চিত্র সন্নিবেশ করার চেষ্টা করি তখন আমার সিস্টেম পুরো মিনিটের জন্য স্তব্ধ হয়ে যায়) এভারনোটে।)


1
আপনার যদি এটির পরিবর্তে কোনও ফাইলের পরিবর্তে কনসোলে আউটপুট থাকে তবে এটি কোনও নির্দিষ্ট স্থানে স্তব্ধ হয়? আমি 10.8.2 এও আছি। এটি আমার জন্য seconds সেকেন্ড সময় নিচ্ছে এবং আমি লক্ষ্য করেছি যে এটি এয়ার সার্ভারের খোলা ফাইল তালিকাভুক্ত করার মাধ্যমে প্রতিবার অর্ধেকটা স্থির হয়ে আছে। আমি এয়ার সার্ভারকে মেরেছিলাম এবং সময়টি হ্রাস পেয়ে 1.76 এ চলেছে। সম্ভবত আপনার সিস্টেমে এমন কিছু আছে যা মূল্যায়ণ করতে অনেক সময় নিচ্ছে?
ওয়ারেন পেনা

আকর্ষণীয় ডেটা পয়েন্ট, @ ওয়ারেনপেনা। যদি আমি lsofকোনও যুক্তি ছাড়াই (সমস্ত ফাইলের তালিকা করতে) চালনা করি তবে এটি এক মিনিটের জন্য স্তব্ধ হয়ে যায় এবং তারপরে সমস্ত ফাইল মুদ্রণ করে। তবে, যেমনটি আমি বলেছি, / টিএমপি ডিরেক্টরিতে কার কাছে একটি একক ফাইল খোলা আছে তা যদি আমি তালিকাভুক্ত করার চেষ্টা করি তবে এটি স্থির থাকে, সুতরাং এটি কোনও নির্দিষ্ট ওপেন ফাইল নয় যা সমস্যা। এছাড়াও, আমি কোনও এয়ার সার্ভার প্রক্রিয়া চালাচ্ছি না।
জেসন

2
এটি (কেবল?) আমার জন্য প্রায় এক সেকেন্ড সময় নেয় আপনি চেষ্টা করতে পারেন sudo opensnoop -n lsof
Lri

2
এটি আমার জন্য 19 টি লাগে। কেন ধারণা নেই ...
ডেভিউয়েস

ভাল ধারণা, @ লৌরিরন্ত। আমি দৌড়ানোর চেষ্টা করেছি sudo opensnoop -n lsofএবং lsof /tmp/testfileদুটি ট্যাব রেখেছি এবং ওপেনসনুপ কেবল তিনটি ফাইল খোলার কথা জানিয়েছে। সুতরাং সমস্যাটি অত্যধিক সংখ্যক ফাইল খোলার কথা নয়, তবে অতিরিক্ত proc_infoকলগুলির সাথে সম্পর্কিত something
জেসন

উত্তর:


10

আমার অভিজ্ঞতা হিসাবে, ম্যাক ওএস এক্স 10.7 (সিংহ) থেকে 10.11.5 (ইআই ক্যাপিটান), lsofসর্বদা স্তব্ধ।

সমস্যার সমাধান করতে, -nবিকল্প যুক্ত করুন।

lsof -n

ম্যানুয়াল অনুসারে lsof, -nবিকল্প:

inhibits the conversion of network numbers to host names for network files.  
Inhibiting conversion may make  lsof  run faster.  It is also useful when host 
name lookup is not working properly

সম্পাদনা 2018-04-25: এটি এখনও ধীর থাকলে, আপনি চেষ্টা করতে পারেন

-O to bypass  the  strategy it uses to avoid being blocked by some kernel operations
-P to inhibits the conversion of port numbers to port names for network files
-l to inhibits  the  conversion of user ID numbers to login names

এতটা ধীর কেন, তার চূড়ান্ত উপায়টি হল / ইউএসআর / এসবিন / এলএসফের উপর "সিস্টেম ট্রেস" করতে "উপকরণের ডান দিকের স্পটলাইট অনুসন্ধান আইকন থেকে)" ইনস্ট্রুমেন্টস "সরঞ্জাম চালানো graph তারপরে গ্রাফ এবং সিএস কলগুলি দেখুন।

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


2
কি দারুন! থেকে -nআমার lsof +Dনিচে কাটা যোগ 5.31 realকরা 0.25 real। এই বিকল্পটি হ'ল ... আসল
ভেজাজোশ

2
এখনও হাস্যকরভাবে আমার জন্য ধীর ...
নলডোরিন

হাই @ নলডোরিন আপনি কি এই পুরানো থ্রেডের মতো একই ওএস এ আছেন? যদি তা না হয় তবে আপনার নির্দিষ্ট সেটআপ এবং নির্দিষ্ট সময়ের সাথে এখানে লিঙ্ক করা একটি নতুন নির্দিষ্ট প্রশ্নের উত্তর একটি মূল্যবান হতে পারে।
বমিকে

3

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

lsof যুক্তিসঙ্গত গতি থেকে 10.6 এবং 10.13 এর মধ্যে নৃশংসভাবে ধীর হয়ে গেছে।

এখানে একটি বর্তমান 10.13.4 সিস্টেমে আমি নিম্নলিখিতটি দেখতে পাচ্ছি মাত্র 7 টি অ্যাপ খোলা এবং চলমান (টার্মিনাল, ক্রোম, ক্যালেন্ডার, ফাইন্ডার, অ্যাডিয়াম, আইপিগ্যাজেট এবং স্টিকি)। (ক্রোমের 7 টি উইন্ডোজ রয়েছে, সম্ভবত 10 টি ট্যাব রয়েছে))

# ps ax | wc -l
     401
# time lsof -lnP | wc -l
   10976

real    0m49.684s
user    0m0.250s
sys 0m40.172s

রান চলাকালীন উভয় সিপিইউ 50% সিস্টেম সময়ের চেয়ে বেশি হয়

যোগ করা -Oকখনও কখনও সহায়তা করে, বিশেষত যদি lsofইদানীং চালিত হয় না তবে সবচেয়ে ভাল আমি দেখেছি 10% সঞ্চয়। সাধারণত এটি মাইনাসিউল এবং ম্যানুয়াল পৃষ্ঠায় বর্ণিত ঝুঁকিগুলির পক্ষে যথাযথ নয়:

# time lsof -lnPO | wc -l
   10994

real    0m47.482s
user    0m0.249s
sys 0m40.472s

dtrussproc_info()আমার বর্তমান প্রসেস লোডের সাথে 89,000 এরও বেশি কল রয়েছে দাবি করেছে এবং সেগুলি কার্নেলের মধ্যে রয়েছে এবং timeরিপোর্ট হিসাবে দেখা যায় যে বেশিরভাগ সময় ব্যয় হয়েছে কার্নেলের মধ্যে। আমি জানিনা কেন প্রতি খোলা ফাইলটিতে প্রায় 8 টি কল রয়েছে।

দুঃখজনকভাবে ম্যাকোস / ডারউইন আর কখনও কার্যকর এবং দক্ষ BSD fstatকমান্ড অন্তর্ভুক্ত করে না ।


1

আপনার সিস্টেমটি আমার ধীরতম ম্যাকের চেয়ে proc_info30 মিনিট বার কল করতে আমার এক মিনিট বেশি সময় নেয় কেন তার দুর্দান্ত উত্তর নেই তবে আপনার সময়টি দেখায় যে লিনাক্স এবং ওএস এক্স উভয়ই এলএসফ চালানোর জন্য 10 এমএস পরিসরে রয়েছে। আপনার সিপিইউতে অন্যান্য বোঝা বাদ দেওয়ার জন্য আপনি কি সেফ মোডে ধীর সময়ের বুটিংটি পুনরুত্পাদন করতে পারেন?

আমি তিনটি ম্যাক চেষ্টা করেছি এবং যেগুলি 10.7.5 চলছে তারা আমার 10.8.2 ম্যাকের চেয়ে প্রায় এক সেকেন্ড দ্রুত গতিতে রয়েছে। পুরানো ওএস ধীর গতির কোর 2 ডুয়ো প্রসেসর এবং আমি ভাবতাম যে নতুন আইএস চালানো একটি আই 7 ম্যাক পুরানো ওএস এবং সিপিইউর চেয়ে দ্রুত বা দ্রুততর হবে তবে আমি ভুল হব।

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

11 ইঞ্চি এয়ার (i7) 2011 চলমান মাউন্টেন সিংহ - এসএসডি:

$ system_profiler SPSoftwareDataType
      System Version: OS X 10.8.2 (or something)
      Kernel Version: Darwin 12.3.0
      Secure Virtual Memory: Enabled
$ time lsof /tmp/testfile 

real    0m1.179s
user    0m0.012s
sys     0m1.158s
$ sudo dtruss lsof /tmp/testfile 2> /tmp/dump
$ cat /tmp/dump | sort | uniq -c | sort -nr | head
9310 proc_info(0x2, 0x68, 0x8)           = 1272 0
1220 proc_info(0x2, 0xCEB6, 0x8)                 = 1272 0
$ cat /tmp/dump | cut -c -9 | sort | uniq -c | sort -nr | head
30884 proc_info
 116 write(0x4
  87 read(0x5,
  60 sigaction
  60 setitimer
  35 stat64("/
  30 sigprocma
  30 sigaltsta
  21 close(0x3
  18 close(0x6 

15 ইঞ্চি ম্যাকবুক প্রো সিংহ সার্ভার চালাচ্ছে - এইচডিডি:

$ system_profiler SPSoftwareDataType
      System Version: Mac OS X Server 10.7.5 (11G63)
      Kernel Version: Darwin 11.4.2
$ time lsof /tmp/testfile

real    0m0.329s
user    0m0.005s
sys     0m0.324s

27 ইঞ্চি আইম্যাক চলমান সিংহ - এইচডিডি:

$ system_profiler SPSoftwareDataType
      System Version: Mac OS X 10.7.5 (11G63b)
      Kernel Version: Darwin 11.4.2
$ time lsof /tmp/testfile

real    0m0.066s
user    0m0.002s
sys     0m0.065s
$ sudo dtruss lsof /tmp/testfile 2> /tmp/dump
$ cat /tmp/dump | cut -c -9 | sort | uniq -c | sort -nr | head
23034 proc_info
 188 write(0x4
 141 read(0x5,
  96 sigaction
  96 setitimer
  48 sigprocma
  48 sigaltsta
  31 stat64("/
  21 close(0x3
  18 close(0x6

1
+1 টি। আমি ২০১০-এর শেষের দিকে এমবিপি (আই + + ৮ জিবি) এর দশমিক দশমিক ২.২ চালিয়ে যাচ্ছি এবং একগুচ্ছ অ্যাপ্লিকেশন চালিয়ে আমি ১.৮ ডলার পাচ্ছি।
হার্ভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.