คำถามติดแท็ก performance

ความเร็วที่โปรแกรมทำงาน

5
วัดทรูพุตของท่อในเปลือก
มีคำสั่งเชลล์ที่ให้คุณวัดความเร็วของข้อมูลที่ผ่านไปดังนั้นคุณสามารถวัดความเร็วของเอาต์พุตของคำสั่งในไพพ์ได้ ดังนั้นแทนที่จะ: $ somecommand | anothercommand คุณสามารถทำสิ่งที่ชอบ: $ somecommand | ??? | anothercommand และสถิติปริมาณงาน (ไบต์ / วินาที) ถูกพิมพ์ไปยัง stderr ฉันคิดว่า แต่ฉันทำไม่ได้สำหรับชีวิตของฉันจำได้ว่าคำสั่งนั้นคืออะไร

5
วิธีเพิ่มความเร็ว X ผ่าน SSH ในการเชื่อมต่อเครือข่ายที่ช้า?
มีคำแนะนำเฉพาะเกี่ยวกับการเร่งความเร็วแอปพลิเคชัน X ผ่าน ssh ในการเชื่อมต่อเครือข่ายที่ช้าหรือไม่? ในกรณีเฉพาะนี้ฉันกำลังเข้าถึงเซิร์ฟเวอร์ที่ตั้งอยู่ในฝั่งตะวันตกจากแล็ปท็อปในฝั่งตะวันออกและนั่นก็เป็นการเชื่อมต่อ DSL ที่ไม่เร็วเกินไป การตั้งค่าใด ๆ สำหรับ ssh? เคล็ดลับทั่วไป?


3
อะไรคือความแตกต่างที่แน่นอนระหว่าง awk และตัดด้วย grep? [ปิด]
เรารู้ว่าเราสามารถรับคอลัมน์ที่สองของบรรทัดที่เราต้องการจากไฟล์โดยใช้เทคนิคทั้งสองนี้: awk '/WORD/ { print $2 }' filename หรือ grep WORD filename| cut -f 2 -d ' ' คำถามของฉันคือ: อะไรคือความแตกต่างระหว่างสองคำสั่งด้านบน? อันไหนมีประสิทธิภาพดีที่สุด? อะไรคือข้อดีของการใช้awkเกินกว่าcutและในทางกลับกัน? ตัวเลือกอะไรที่awkทำให้เรามีcutทางกลับกัน?
30 awk  grep  performance  cut 

12
ฉันจะปรับแต่งเดสก์ท็อป Linux ให้ตอบสนองได้อย่างไร
ฉันมีประสบการณ์ที่ Linux ทำงานได้ดีจนกว่าหน่วยความจำกายภาพจะหมดลง ทันทีที่ใช้พื้นที่สว็อปประสิทธิภาพการทำงานจะลดลงอย่างรุนแรงและ GUI ไม่ตอบสนอง ปัญหานี้ไม่ได้ จำกัด เฉพาะ distro หรือเดสก์ท็อปที่เฉพาะเจาะจงเพราะฉันได้ลองแล้วสองสามครั้ง (และปัญหายังคงอยู่) ฉันจะทำอะไรเกี่ยวกับเรื่องนี้?
30 linux  kernel  performance  io  swap 

4
หลาม vs bc ในการประเมิน 6 ^ 6 ^ 6
ฉันประเมินการแสดงออก6^6^6โดยใช้pythonและbcแยก print 6**6**6เนื้อหาของไฟล์หลามคือ เมื่อฉันรันtime python test.pyฉันจะได้ผลลัพธ์เป็น real 0m0.067s user 0m0.050s sys 0m0.011s จากนั้นฉันรันคำสั่งtime echo 6^6^6 | bcที่ให้ผลลัพธ์ต่อไปนี้ให้ฉัน real 0m0.205s user 0m0.197s sys 0m0.005s จากผลลัพธ์เหล่านี้เห็นได้ชัดว่าเวลา sys ที่ใช้โดย python และ bc คือ 11ms และ 5ms ตามลำดับ คำสั่ง BC เฮงหลามในระดับเวลา SYSแต่เมื่อมันมาถึงผู้ใช้และเวลาจริงหลามเป็นเกือบ 4 ครั้งเร็วกว่าปีก่อนคริสตกาล สิ่งที่อาจจะไปที่นั่น ฉันไม่ได้ให้ความสำคัญกับกระบวนการเช่นนี้ ฉันพยายามที่จะเข้าใจสถานการณ์นี้

11
เหตุใดเชลล์จึงไม่แก้ไข“ การใช้แมวที่ไร้ประโยชน์” โดยอัตโนมัติ? [ปิด]
หลายคนใช้ oneliners และสคริปต์ที่มีรหัสตามบรรทัด cat "$MYFILE" | command1 | command2 > "$OUTPUT" ครั้งแรกที่catมักจะเรียกว่า "การใช้ประโยชน์จากแมว" เพราะในทางเทคนิคมันต้องเริ่มต้นกระบวนการใหม่ (มัก/usr/bin/cat) ซึ่งสามารถหลีกเลี่ยงได้ถ้าคำสั่งได้รับ < "$MYFILE" command1 | command2 > "$OUTPUT" เพราะเชลล์จะต้องเริ่มcommand1และชี้stdinไปที่ไฟล์ที่กำหนดเท่านั้น เหตุใดเปลือกจึงไม่ทำการแปลงนี้โดยอัตโนมัติ ฉันรู้สึกว่าไวยากรณ์ "ใช้งานไร้ประโยชน์ของแมว" ง่ายต่อการอ่านและเชลล์ควรมีข้อมูลเพียงพอที่จะกำจัดแมวไร้ประโยชน์โดยอัตโนมัติ catถูกกำหนดไว้ในมาตรฐาน POSIX เพื่อให้เปลือกควรได้รับอนุญาตที่จะใช้มันภายในแทนการใช้ไบนารีในเส้นทาง เชลล์สามารถมีการนำไปใช้งานสำหรับอาร์กิวเมนต์หนึ่งรุ่นเท่านั้นและทางเลือกในการไบนารี

8
ทำดิสก์ / ดิสก์ให้ช้าลง
มีวิธีการชะลอกระบวนการคัดลอกบน Linux หรือไม่ ฉันมีไฟล์ขนาดใหญ่พูด 10GB และฉันต้องการคัดลอกไปยังไดเรกทอรีอื่น แต่ฉันไม่ต้องการคัดลอกด้วยความเร็วเต็ม สมมติว่าฉันต้องการคัดลอกด้วยความเร็ว 1mb / s ไม่ใช่เร็วขึ้น ฉันต้องการใช้cpคำสั่งLinux มาตรฐาน เป็นไปได้ไหม (ถ้าใช่เป็นอย่างไร) แก้ไข : ดังนั้นฉันจะเพิ่มบริบทเพิ่มเติมให้กับสิ่งที่ฉันพยายามจะทำให้สำเร็จ ฉันมีปัญหาเกี่ยวกับระบบ ArchLinux เมื่อคัดลอกไฟล์ขนาดใหญ่ผ่าน USB (ไปยัง pendrive, ดิสก์ usb ฯลฯ ) หลังจากเติมบัฟเฟอร์บัฟเฟอร์ usb แล้วระบบของฉันจะหยุดการตอบสนอง (แม้กระทั่งเมาส์จะหยุดทำงาน แต่จะเคลื่อนที่เป็นระยะ ๆ ) การดำเนินการคัดลอกยังคงดำเนินต่อไป แต่ใช้ทรัพยากร 100% ของกล่อง เมื่อการคัดลอกเสร็จสิ้นทุกอย่างกลับสู่ปกติ - ทุกอย่างตอบสนองได้อย่างสมบูรณ์แบบอีกครั้ง อาจเป็นข้อผิดพลาดของฮาร์ดแวร์ฉันไม่รู้ แต่ฉันรู้ว่าฉันมีสองเครื่องที่มีปัญหานี้ (ทั้งสองอยู่ใน ArchLinux, หนึ่งคือกล่องเดสก์ท็อป, ที่สองคือแล็ปท็อป) "แก้ปัญหา" …

1
ทำไม "ls *" ใช้เวลานานกว่า "ls" มาก?
ฉันมีไฟล์สองสามไฟล์ในไดเรกทอรี: $ ls | wc -l 9376 ใครช่วยอธิบายได้ว่าทำไมถึงมีความแตกต่างครั้งใหญ่ในการใช้งานls *และls? $ time ls > /dev/null real 0m0.118s user 0m0.106s sys 0m0.011s และ $ time ls * > /dev/null real 1m32.602s user 0m0.233s sys 0m0.438s ตกลงนี่เป็นตัวอย่างที่รุนแรงและอาจได้รับการปรับปรุงเนื่องจากไดเรกทอรีอยู่ในระบบไฟล์แบบขนานทั่วไป (GPFS) แต่ฉันยังสามารถเห็นการชะลอตัวที่สำคัญในระบบไฟล์ท้องถิ่น แก้ไข: $ time ls -l > /dev/null real 0m58.772s user 0m0.113s sys 0m0.452s $ …

9
สำหรับ vs find in Bash
เมื่อวนลูปผ่านไฟล์มีสองวิธี: ใช้for-loop: for f in *; do echo "$f" done ใช้find: find * -prune | while read f; do echo "$f" done สมมติว่าทั้งสองจะได้พบกับลูปในรายการเดียวกันของไฟล์สิ่งที่มีความแตกต่างในทั้งสองตัวเลือกในperfomanceและการจัดการ?

8
การขยายท่อการเลื่อนหรือการเพิ่มประสิทธิภาพมีประสิทธิภาพมากขึ้นหรือไม่?
ฉันกำลังพยายามหาวิธีที่มีประสิทธิภาพมากที่สุดในการวนซ้ำค่าบางค่าซึ่งเป็นค่าที่สอดคล้องกันซึ่งอยู่ห่างกันในรายการคำที่คั่นด้วยช่องว่าง (ฉันไม่ต้องการใช้อาร์เรย์) ตัวอย่างเช่น, list="1 ant bat 5 cat dingo 6 emu fish 9 gecko hare 15 i j" ดังนั้นฉันต้องการที่จะสามารถวนซ้ำในรายการและเข้าถึง 1,5,6,9 และ 15 เท่านั้น แก้ไข:ฉันควรทำให้ชัดเจนว่าค่าที่ฉันพยายามรับจากรายการไม่ต้องแตกต่างในรูปแบบจากส่วนที่เหลือของรายการ สิ่งที่ทำให้พวกเขาพิเศษเป็นเพียงตำแหน่งของพวกเขาในรายการ (ในกรณีนี้ตำแหน่ง 1,4,7 ... ) ดังนั้นรายการอาจเป็นได้1 2 3 5 9 8 6 90 84 9 3 2 15 75 55แต่ฉันยังต้องการหมายเลขเดิม และฉันต้องการที่จะทำมันโดยสมมติว่าฉันไม่รู้ความยาวของรายการ วิธีการที่ฉันเคยคิดคือ: วิธีที่ 1 set $list …

5
ฉันสามารถปิดการใช้งาน updatedb ได้หรือไม่
เป็นupdatedbสิ่งที่จำเป็นที่ทั้งหมดหรือไม่ ฉันไม่เคยใช้locateและเซิร์ฟเวอร์ของฉันมักจะมีไฟล์หลายสิบล้านไฟล์ซึ่งโดยปกติจะทำให้ updateb ทำงานเป็นเวลานานและใช้ I / O ที่จำเป็นโดย MySQL และ / หรือซอฟต์แวร์อื่น ๆ ฉันสามารถลบมันออกจาก cron และคาดหวังว่าทุกอย่างจะทำงานได้หรือไม่ (โดยทุกอย่างฉันหมายถึงซอฟต์แวร์ปกติที่พบในเซิร์ฟเวอร์: linux, cpanel, mysql, apache, php เป็นต้น)

5
ทำไมการวนซ้ำไฟล์เร็วกว่าการอ่านลงในหน่วยความจำและการคำนวณสองครั้งทำไม
ฉันกำลังเปรียบเทียบสิ่งต่อไปนี้ tail -n 1000000 stdout.log | grep -c '"success": true' tail -n 1000000 stdout.log | grep -c '"success": false' ด้วยดังต่อไปนี้ log=$(tail -n 1000000 stdout.log) echo "$log" | grep -c '"success": true' echo "$log" | grep -c '"success": false' และน่าประหลาดใจที่สองใช้เวลานานกว่าครั้งแรกเกือบ 3 เท่า มันควรจะเร็วกว่านี้ใช่ไหม
26 bash  performance  io 

2
เป็นไปได้ไหมที่จะเรียกใช้ OOM-killer ในการบังคับให้เปลี่ยน
เป็นไปได้หรือไม่ที่ระบบจะทำการสลับเพจที่ไม่ใช้งาน ( vm.swappiness) ล่วงหน้าแต่เรียกใช้ oom-killer เมื่อระบบไม่มี RAM (เมื่อเทียบกับหน่วยความจำหมด) และถูกบังคับให้สลับ เป้าหมายสูงสุดคือการป้องกันไม่ให้ระบบหยุดทำงานชั่วคราวเมื่อระบบเริ่มการฟาดดิสก์เนื่องจากความผิดพลาดของหน้าหลัก แต่ก็ยังปล่อยให้หน้าเว็บที่ไม่ได้ทำงานเปลี่ยน ความปรารถนาอีกประการหนึ่งคือการกำหนดค่าจำนวนหน่วยความจำสลับที่ระบบถูกบังคับให้ใช้ก่อนทริกเกอร์ oom-killer วิธีนี้ระบบสามารถจุ่มลงในการแลกเปลี่ยนเพียงเล็กน้อยตราบใดที่มันไม่ได้ไปไกลเกินไป หรือฉันอาจตั้งค่าขีด จำกัด ดังกล่าวเพื่อเรียกใช้ oom-killer ก่อนที่จะใช้ RAM ทั้งหมดดังนั้นจะมีที่ว่างสำหรับแคชของระบบไฟล์เสมอ ดูเหมือนว่ามันจะเป็นเรื่องยากที่จะทำ ดูเหมือนว่าคุณจะสามารถบอกนักฆ่าอุ๊ยเพื่อเรียกเมื่อระบบมีการใช้ X แรม / ฟรี แต่นี่คือเหตุผลที่ฉันถาม ฉันไม่รู้ เพื่อความกระจ่างแจ้งฉันไม่ต้องการปิดการสลับหรือปรับvm.swappinessพารามิเตอร์

4
Benchmark ssd บน linux: วิธีการวัดสิ่งเดียวกันกับ crystaldiskmark ทำใน windows
ฉันต้องการมาตรฐาน ssd (อาจมีระบบไฟล์ที่เข้ารหัส) และเปรียบเทียบกับมาตรฐานที่ทำโดย crystaldiskmark บน windows ดังนั้นฉันจะวัดประมาณสิ่งเดียวกันกับ crystaldiskmark ทำอย่างไร สำหรับแถวแรก (Seq) ฉันคิดว่าฉันสามารถทำอะไรได้บ้าง LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc sudo su -c "echo 3 > /proc/sys/vm/drop_caches" LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024 แต่ฉันไม่แน่ใจเกี่ยวกับddพารามิเตอร์ สำหรับการสุ่ม 512KB, 4KB, 4KB (ความลึกคิว = 32) การอ่าน / เขียนการทดสอบความเร็วฉันไม่มีความคิดใด ๆ ในการทำซ้ำการวัดใน linux? แล้วฉันจะทำสิ่งนี้ได้อย่างไร สำหรับการทดสอบการอ่านความเร็วสิ่งที่ชอบsudo hdparm …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.