Ayer actualicé Ubuntu 17.10 y es muy lento cuando lo suspendo y lo despierto. Por ejemplo, este comando:
time docker-compose run web rspec --color spec/models/user_spec.rb:7
Tarda 5 segundos antes de suspender y 1,47minutosdespués.
Lo consulto gnome-system-monitor
y todo parece normal.
Hice algunos puntos de referencia y tengo este resultado antes de la suspensión:
~ sysbench cpu --threads=4 run
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 3766.37
General statistics:
total time: 10.0009s
total number of events: 37672
Latency (ms):
min: 1.02
avg: 1.06
max: 10.94
95th percentile: 1.10
sum: 39990.91
Threads fairness:
events (avg/stddev): 9418.0000/36.06
execution time (avg/stddev): 9.9977/0.00
~ sysbench memory --threads=4 run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 1KiB
total size: 102400MiB
operation: write
scope: global
Initializing worker threads...
Threads started!
Total operations: 104857600 (12034664.21 per second)
102400.00 MiB transferred (11752.60 MiB/sec)
General statistics:
total time: 8.7111s
total number of events: 104857600
Latency (ms):
min: 0.00
avg: 0.00
max: 6.78
95th percentile: 0.00
sum: 21761.44
Threads fairness:
events (avg/stddev): 26214400.0000/0.00
execution time (avg/stddev): 5.4404/0.06
~ sysbench fileio --file-total-size=15G --file-test-mode=rndrw --max-requests=0 --file-num=64 --threads=4 run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Extra file open flags: 0
64 files, 240MiB each
15GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...
Threads started!
File operations:
reads/s: 83.32
writes/s: 55.38
fsyncs/s: 85.50
Throughput:
read, MiB/s: 1.30
written, MiB/s: 0.87
General statistics:
total time: 10.0912s
total number of events: 2263
Latency (ms):
min: 0.00
avg: 17.78
max: 584.69
95th percentile: 92.42
sum: 40229.56
Threads fairness:
events (avg/stddev): 565.7500/61.92
execution time (avg/stddev): 10.0574/0.03
~ sysbench threads --threads=4 run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Initializing worker threads...
Threads started!
General statistics:
total time: 10.0002s
total number of events: 203148
Latency (ms):
min: 0.14
avg: 0.20
max: 6.25
95th percentile: 0.21
sum: 39963.81
Threads fairness:
events (avg/stddev): 50787.0000/116.11
execution time (avg/stddev): 9.9910/0.00
~ sysbench mutex run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Initializing worker threads...
Threads started!
General statistics:
total time: 0.1467s
total number of events: 1
Latency (ms):
min: 146.63
avg: 146.63
max: 146.63
95th percentile: 147.61
sum: 146.63
Threads fairness:
events (avg/stddev): 1.0000/0.00
execution time (avg/stddev): 0.1466/0.00
Y esto después:
~ sysbench cpu --threads=4 run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 3746.73
General statistics:
total time: 10.0005s
total number of events: 37474
Latency (ms):
min: 1.02
avg: 1.07
max: 12.04
95th percentile: 1.16
sum: 39992.93
Threads fairness:
events (avg/stddev): 9368.5000/452.12
execution time (avg/stddev): 9.9982/0.00
~ sysbench memory --threads=4 run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 1KiB
total size: 102400MiB
operation: write
scope: global
Initializing worker threads...
Threads started!
Total operations: 104857600 (11640930.78 per second)
102400.00 MiB transferred (11368.10 MiB/sec)
General statistics:
total time: 9.0057s
total number of events: 104857600
Latency (ms):
min: 0.00
avg: 0.00
max: 6.41
95th percentile: 0.00
sum: 21740.13
Threads fairness:
events (avg/stddev): 26214400.0000/0.00
execution time (avg/stddev): 5.4350/0.12
~ sysbench fileio --file-total-size=15G --file-test-mode=rndrw --max-requests=0 --file-num=64 --threads=4 run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Extra file open flags: 0
64 files, 240MiB each
15GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...
Threads started!
File operations:
reads/s: 3.93
writes/s: 2.52
fsyncs/s: 1.81
Throughput:
read, MiB/s: 0.06
written, MiB/s: 0.04
General statistics:
total time: 15.4994s
total number of events: 128
Latency (ms):
min: 0.00
avg: 428.29
max: 6760.00
95th percentile: 1771.29
sum: 54820.53
Threads fairness:
events (avg/stddev): 32.0000/7.18
execution time (avg/stddev): 13.7051/2.10
~ sysbench threads --threads=4 run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Initializing worker threads...
Threads started!
General statistics:
total time: 10.0002s
total number of events: 201233
Latency (ms):
min: 0.14
avg: 0.20
max: 11.33
95th percentile: 0.22
sum: 39965.00
Threads fairness:
events (avg/stddev): 50308.2500/318.90
execution time (avg/stddev): 9.9913/0.00
~ sysbench mutex run
sysbench 1.0.8 (using system LuaJIT 2.0.4)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Initializing worker threads...
Threads started!
General statistics:
total time: 0.1603s
total number of events: 1
Latency (ms):
min: 160.21
avg: 160.21
max: 160.21
95th percentile: 161.51
sum: 160.21
Threads fairness:
events (avg/stddev): 1.0000/0.00
execution time (avg/stddev): 0.1602/0.00
Veo que la diferencia más importante es para fileio.Editar: me equivoqué. Hice la prueba nuevamente y obtuve total number of events: 1282
algo que parece similar a la primera prueba.
Hice esta prueba para tener más información:
~ dd if=/dev/zero of=./largefile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.2191 s, 881 MB/s
➜ dd if=./largefile of=/dev/null bs=4k
262144+0 records in
262144+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.174457 s, 6.2 GB/s
Parece correcto.
Tengoesto condmesg
.
Aquí están las líneas más importantes:
[ 117.822557] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20170531/psargs-364)
[ 117.822561] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.CHN1.DRV0._GTF, AE_NOT_FOUND (20170531/psparse-550)
[ 117.822577] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20170531/psargs-364)
[ 117.822579] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.CHN1.DRV1._GTF, AE_NOT_FOUND (20170531/psparse-550)
[ 117.822621] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20170531/psargs-364)
[ 117.822623] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.CHN0.DRV0._GTF, AE_NOT_FOUND (20170531/psparse-550)
[ 117.822793] rtc_cmos 00:02: Alarms can be up to one month in the future
[ 119.168408] ata1.01: failed to resume link (SControl 30)
[ 119.323036] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20170531/psargs-364)
[ 119.323043] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.CHN0.DRV0._GTF, AE_NOT_FOUND (20170531/psparse-550)
[ 120.781116] done.
[ 123.636265] ata2.00: link is slow to respond, please be patient (ready=0)
[ 127.848898] ata2.00: SRST failed (errno=-16)
[ 129.051082] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20170531/psargs-364)
[ 129.051093] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.CHN1.DRV1._GTF, AE_NOT_FOUND (20170531/psparse-550)
[ 129.205049] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20170531/psargs-364)
[ 129.205059] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.CHN1.DRV0._GTF, AE_NOT_FOUND (20170531/psparse-550)
Parece que hay algunos problemas con ata2 y ACPI. Supongo que esto está relacionado pero no sé qué hacer. Esas líneas aparecen solo cuando suspendo y vuelvo.
Aquí hay información sobre mi sistema.
Linux oscar 4.13.0-16-lowlatency #19-Ubuntu SMP PREEMPT Wed Oct 11 19:51:52 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
¿Tienes alguna pista?
Respuesta1
Encontré una solución que funcionó para mí (Ubuntu 20.04, DELL XPS 15)aquí. Parece funcionar en una amplia gama de sistemas (he visto Ubuntu 15.04, 16.04, 18.04 y algunas versiones de Archlinux), por lo que es muy probable que también funcione en su sistema.
En resumen, intente lo siguiente:
sudo apt install msr-tools
sudo modprobe msr
sudo rdmsr -a 0x19a
Si el último comando no solo devuelve 0
s (en mi caso devolvió ocho veces 10
), ejecute:
sudo wrmsr -a 0x19a 0x0
Las cosas deberían acelerarse de inmediato. Además, cuando se ejecuta rdmsr
nuevamente de la misma manera que se describió anteriormente, ahora solo debería devolver 0
s.