...
- Identify the problem. The first step in troubleshooting a device issue is to identify the problem, you have to consider if the issue is in NMIS8 or NMIS9 products.
- Add to the support the case the product version and the servers/devices/models involved.
- What kind of problem are you observing. A device issue can be affected for the next reasons.
- Network performance, latency in the network, layer 1,2, and 3 issues.
- Device configuration, connectivity, SNMP configuration, and others.
- Server hardware requirements, high resource utilization parameters in the server.
- Server configuration options, missing configuration items for server tunning.
- Disk performance, slow write/read times for the device collection.
- Gather information, collect all the graphs, images, behaviors that can explain what the problem is.
- Collect support tool files The Opmantek Support Tool
Execute the collect command for the support tool
Code Block #General collection. /usr/local/nmis8/admin/support.pl action=collect #If the file is big, we can add the next parameter. /usr/local/nmis8/admin/support.pl action=collect maxzipsize=900000000 #Device collection. /usr/local/nmis8/admin/support.pl action=collect node=<node_name> maxzipsize=900000000
- If you are using NMIS8, provide the /usr/local/nmis8/var files
go to /usr/local/nmis8/var directory and collect the next files
Code Block -rw-rw---- 1 nmis nmis 4292 Apr 5 18:26 <node_name>-node.json -rw-rw---- 1 nmis nmis 2695 Apr 5 18:26 <node_name>-view.json
obtain update/collect outputs this information will upload to the support case:
Code Block /usr/local/nmis8/bin/nmis.pl type=update node=<node_name> model=true debug=9 force=true > /tmp/node_name_update_$(hostname).log /usr/local/nmis8/bin/nmis.pl type=collect node=<node_name> model=true debug=9 force=true > /tmp/node_name_collect_$(hostname).log
- Collect support tool files The Opmantek Support Tool
- Replicate the problem. If possible you have to define, what the steps are to replicate the problem.
- Identify symptoms. To this point, you are able to see a specific problem and what the symptoms are.
- Determinate if something has changed, is important to verify with your team if something has changed, a good way to see this behavior is monitoring the performance graph for devices and server
- It is an individual problem?, verify if this behavior is happening in a single device/server.
Network performance - Server.
Introduccíon.
Esta sección esta enfocada a realizar la revisión y validación del estado del servidor en general, por lo que solo nos centraremos en verificar el comportamiento he histórico, por lo que nos apoyaremos del sistema de monitoreo.
Verificar
Procedemos a acceder a la GUI de NMIS.
- Nos aseguramos que los datos del tablero Metrics este normal, los valores de Metric, Reachability, interfaceAvail y Healt se encuentren en el rango de 70% - 100% con esto nos aseguramos que el servidor esta trabajando correctamente y el valor de Response Time se mantenga lo mas bajo posible.
- Vista del nodo LocalHost: Se verificara que el estatus del nodo este en alcanzable, asi mismo revisar las secciones en los recuadros, estas metricas indicaran si el servidor presenta alguna falla, o degradación en servicios monitoreados, el servidor debe de encontrarse en perfectas condiciones para ejecutar correctamente el sistema de monitoreo.
- Vista de las graficas referentes a la red (Response Time in miliseconds, IP Utilisation, TCP Connection, TCP Segments) nos ayudara a visualizar el comportamiento del servidor en un periodo de 2 dias, por lo que tambien se podrá consultar un rango de fechas para mayor precisión.
- d
- d
Device configuration.
Introduccíon.
Verificar
ping
trace
mtr
snmpwalk
Server hardware requirements.
Introduccion
Top
...
Introduction.
This section is focused on performing the review and validation of the server status in general, we will focus on verifying the historical behavior of the main metrics for the server, it is important to review all the metrics related to the good performance between the server and devices
Verifying Health Metrics
- Metrics are important for the server, NMIS would use Reachability, Availability and Health to represent the network.
Reachability being the pingability of device,
Availability being (in the context of network gear) the interfaces which should be up, being up or not, e.g. interfaces which are "no shutdown" (ifAdminStatus = up) should be up, so a device with 10 interfaces of ifAdminStatus = up and ifOperStatus = up for 9 interfaces, the device would be 90% available.
Health is a composite metric, made up of many things depending on the device, router, CPU, memory. Something interesting here is that part of the health is made up of an inverse of interface utilisation, so an interface which has no utilisation will have a high health component, an interface which is highly utilised will reduce that metric. So the health is a reflection of load on the device, and will be very dynamic.
The overall metric of a device is a composite metric made up of weighted values of the other metrics being collected. The formula for this is based is configurable, so you can have weight Reachability to be higher than it currently is, or lower, your choice.
For more references go to NMIS Metrics, Reachability, Availability and Health
- It is important to validate the localhost heath, including the overall reachability, availability, and Health you will be able to see data not following the historical data pattern that can give us a clue where the problem can be happening or even if the abnormal behavior has started before a change request In the early hours.
- Viewing the graphs referring to the network performance as (Response Time in milliseconds, IP Utilization, TCP Connection, TCP Segments) will help us to identify the behavior of the server/network in a period of 2 days, we can modify this period time to see more data if needed.
Device configuration.
It is important to validate if the problem occurs in the network or is something related to the device configuration, in order to identify what's happening we need to validate the next commands from the console server.
Ping test, The Ping tool is used to test whether a particular host is reachable across an IP network. A Ping measures the time it takes for packets to be sent from the local host to a destination computer and back.
Code Block ping x.x.x.x #add the ip address you need to reach
Traceroute, is a network diagnostic tool used to track in real-time the pathway taken by a packet on an IP network from source to destination, reporting the IP addresses of all the routers it pinged in between
Code Block traceroute <ip_Node> #add the ip address you need to reach
MTR, Mtr(my traceroute) is a command line network diagnostic tool that provides the functionality of both the ping and traceroute commands
Code Block sudo mtr -r 8.8.8.8 [sample results below] HOST: endor Loss% Snt Last Avg Best Wrst StDev 1. 69.28.84.2 0.0% 10 0.4 0.4 0.3 0.6 0.1 2. 38.104.37.141 0.0% 10 1.2 1.4 1.0 3.2 0.7 3. te0-3-1-1.rcr21.dfw02.atlas. 0.0% 10 0.8 0.9 0.8 1.0 0.1 4. be2285.ccr21.dfw01.atlas.cog 0.0% 10 1.1 1.1 0.9 1.4 0.1 5. be2432.ccr21.mci01.atlas.cog 0.0% 10 10.8 11.1 10.8 11.5 0.2 6. be2156.ccr41.ord01.atlas.cog 0.0% 10 22.9 23.1 22.9 23.3 0.1 7. be2765.ccr41.ord03.atlas.cog 0.0% 10 22.8 22.9 22.8 23.1 0.1 8. 38.88.204.78 0.0% 10 22.9 23.0 22.8 23.9 0.4 9. 209.85.143.186 0.0% 10 22.7 23.7 22.7 31.7 2.8 10. 72.14.238.89 0.0% 10 23.0 23.9 22.9 32.0 2.9 11. 216.239.47.103 0.0% 10 50.4 61.9 50.4 92.0 11.9 12. 216.239.46.191 0.0% 10 32.7 32.7 32.7 32.8 0.1 13. ??? 100.0 10 0.0 0.0 0.0 0.0 0.0 14. google-public-dns-a.google.c 0.0% 10 32.7 32.7 32.7 32.8 0.0
- snmpwalk, is a Simple Network Management Protocol (SNMP) application present on the Security Management System (SMS) CLI that uses SNMP GETNEXT requests to query a network device for information. An object identifier (OID) may be given on the command line.
Code Block The following example CLI command will return the IPS temperature information: Command:snmpwalk -v 2c -c tinapc <IP address> 1.3.6.1.4.1.10734.3.5.2.5.5 Command Explanation: In this case the CLI command breaks down as following; snmpwalk = SNMP application -v 2c = specifies what SNMP version to use (1, 2c, 3) -c tinapc = specifies the community string. Note: The IPS has the SNMP read-only community string of "tinapc" <IP address> = specifies the IP address of the IPS device 1.3.6.1.4.1.10734.3.5.2.5.5 = OID parameter for the IPS temperature information Results: SNMPv2-SMI::enterprises.10734.3.5.2.5.5.1.0 = INTEGER: 27 SNMPv2-SMI::enterprises.10734.3.5.2.5.5.2.0 = INTEGER: 50 SNMPv2-SMI::enterprises.10734.3.5.2.5.5.3.0 = INTEGER: 55 SNMPv2-SMI::enterprises.10734.3.5.2.5.5.4.0 = INTEGER: 0 SNMPv2-SMI::enterprises.10734.3.5.2.5.5.5.0 = INTEGER: 85 Results Explanation: SNMPv2-SMI::enterprises.10734.3.5.2.5.5.1.0 = INTEGER: 27 = The chassis temperature (27° Celsius / 80.6° Fahrenheit) SNMPv2-SMI::enterprises.10734.3.5.2.5.5.2.0 = INTEGER: 50 = The major threshold value for chassis temperature (50° Celsius / 122° Fahrenheit) SNMPv2-SMI::enterprises.10734.3.5.2.5.5.3.0 = INTEGER: 55 = The critical threshold value of chassis temperature (55° Celsius / 131° Fahrenheit) SNMPv2-SMI::enterprises.10734.3.5.2.5.5.4.0 = INTEGER: 0 = The minimum value of the chassis temperature range ( 0° Celsius / 32° Fahrenheit) SNMPv2-SMI::enterprises.10734.3.5.2.5.5.5.0 = INTEGER: 85 = The maximum value of the chassis temperature range (85° Celsius / 185° Fahrenheit)
It is important to see that the device is pingable, do not have latency, packet loss and the SNMP data is been collected.
Server hardware requirements.
Introduccion
Top
Abrimos una consola y simplemente ejecutamos el comando:
Code Block |
---|
top |
Nos va a aparecer una interfaz en modo texto que se va a ir actualizando cada 3 segundos. Muestra un resumen del estado de nuestro sistema y la lista de procesos que se están ejecutando. La salida que obtengo en mi ordenador es la siguiente:
Code Block |
---|
top - 12:50:01 up 62 days, 22:56, 5 users, load average: 4.76, 8.03, 4.34 Tasks: 412 total, 1 running, 411 sleeping, 0 stopped, 15 zombie Cpu(s): 6.8%us, 3.8%sy, 0.2%ni, 74.4%id, 28.2%wa, 0.1%hi, 0.5%si, 0.0%st Mem: 20599548k total, 18622368k used, 1977180k free, 375212k buffers Swap: 6669720k total, 3536428k used, 3133292k free, 10767256k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 26306 root 20 0 478m 257m 1900 S 3.9 1.3 0:08.21 nmis.pl 15522 root 20 0 626m 373m 2776 S 2.0 1.9 71:45.09 opeventsd.pl 27285 root 20 0 15280 1444 884 R 2.0 0.0 0:00.01 top 1 root 20 0 19356 308 136 S 0.0 0.0 1:07.65 init 2 root 20 0 0 0 0 S 0.0 0.0 0:02.14 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 17359:19 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 252:25.86 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 2233:33 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 340:35.60 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 9 root 20 0 0 0 0 S 0.0 0.0 5:23.87 ksoftirqd/1 10 root RT 0 0 0 0 S 0.0 0.0 214:57.35 watchdog/1 |
...
Code Block | ||
---|---|---|
| ||
###################################################### # NMIS8 Config ###################################################### # Run Full Statistics Collection */5 * * * * root /usr/local/nmis8/bin/nmis.pl type=collect maxthreads=100 mthread=true */5 mthread=true */5 * * * * root /usr/local/nmis8/bin/nmis.pl type=services mthread=true # ###################################################### # Optionally run a more frequent Services-only Collection # */3 * * * * root /usr/local/nmis8/bin/nmis.pl type=services mthread=true # ###################################################### # OptionallyRun runSummary aUpdate moreevery frequent Services-only Collection # 2 minutes */32 * * * * root /usr/local/nmis8/bin/nmis.pl type=services mthread=true ###################################################### # Run Summary Update every 2 minutes */2 * * * * root /usr/local/nmis8/bin/nmis.pl type=summary |
Procedemos a verificar que el valor del mthread este activado y que el maxthreads tenga en mismo valor en el archivo Config.nmis
Code Block | ||
---|---|---|
| ||
'nmis_group' => 'nmis',
'nmis_host' => 'nmissTest_OMK.omk.com',
'nmis_host_protocol' => 'http',
'nmis_maxthreads' => '100',
'nmis_mthread' => 'false',
'nmis_summary_poll_cycle' => 'false',
'nmis_user' => 'nmis', |
Podemos ver que el valor mthread esta desactivado y que el valor maxthreads si corresponde al mismo declarado en el cron de nmis, por lo que se procede a activarlo y a realizar un update y collect al nodo.
pl type=summary |
Procedemos a verificar que el valor del mthread este activado y que el maxthreads tenga en mismo valor en el archivo Config.nmis
Code Block | ||
---|---|---|
| ||
'nmis_group' => 'nmis',
'nmis_host' => 'nmissTest_OMK.omk.com',
'nmis_host_protocol' => 'http',
'nmis_maxthreads' => '100',
'nmis_mthread' => 'false',
'nmis_summary_poll_cycle' => 'false',
'nmis_user' => 'nmis', |
Podemos ver que el valor mthread esta desactivado y que el valor maxthreads si corresponde al mismo declarado en el cron de nmis, por lo que se procede a activarlo y a realizar un update y collect al nodo.
Code Block | ||
---|---|---|
| ||
/usr/local/nmis8/bin/nmis.pl type=update node=<Name_Node> force=true
/usr/local/nmis8/bin/nmis.pl type=collect node=<Name_Node> force=true |
Nota: Si estos valores declarados en el cron y en el archivo Conf.nmis no funcionan se recomienda realizar lo siguiente:
Code Block | ||
---|---|---|
| ||
# Ejemplo 1:
| ||
Code Block | ||
| ||
/usr/local/nmis8/bin/nmis.pl type=update node=<Name_Node> force type=collect abort_after=300 mthread=true maxthreads=100 ignore_running=true # Ejemplo 2 /usr/local/nmis8/bin/nmis.pl type=collect node=<Name_Node> force=true |
Nota: Si estos valores declarados en el cron y en el archivo Conf.nmis no funcionan se recomienda realizar lo siguiente:
Code Block | ||
---|---|---|
| ||
# Ejemplo 1:
/usr/local/nmis8/bin/nmis.pl type=collect abort_after=300 mthread=true maxthreads=100 ignore_running=true
# Ejemplo 2
/usr/local/nmis8/bin/nmis.pl type=collect abort_after=240 mthread=true maxthreads=100 ignore_running=true |
El valor del parámetro maxthreads (se recomienda probar entre 50, 80 y 100) debe ser el mismo en ambos archivos (cron nmis y conf.nmis)
Aplicar los comandos de Update y Collect al termino de cada prueba y verificar el comportamiento en la GUI de NMIS, esto consiste en revisar las gráficas de NMIS Runtime Graph, Network_summary y Polling_summary.
Check de servidor
Se requiere realizar una revisión general del hardware del servidor, para obtener lo siguiente:
Sistema Operativo.
Verificación del sistema operativo en donde se encuentra trabajando el sistema de monitoreo.
Comando:
cat /etc/*release* && uname -osmr && uname -v
Resultado:
Code Block |
---|
[root@opmantek ~]# cat /etc/*release* && uname -osmr && uname -v
CentOS release 6.10 (Final)
CentOS release 6.10 (Final)
CentOS release 6.10 (Final)
cpe:/o:centos:linux:6:GA
Linux 2.6.32-754.28.1.el6.x86_64 x86_64 GNU/Linux
#1 SMP Wed Mar 11 18:38:45 UTC 2020
[root@opmantek ~]# |
Detalles de almacenamiento:
Verificación del estado de almacenamiento, memoria libre y detalles de las particiones del S.O.
Comando:
echo -e "\n \e[31m Información de espacio en el disco \e[0m" && df -h && echo -e "\n\n \e[31m Información de uso de RAM \e[0m" && free -m && echo -e "\n\n \e[31m Detalle de discos \e[0m" && fdisk -l
Resultado:
abort_after=240 mthread=true maxthreads=100 ignore_running=true |
El valor del parámetro maxthreads (se recomienda probar entre 50, 80 y 100) debe ser el mismo en ambos archivos (cron nmis y conf.nmis)
Aplicar los comandos de Update y Collect al termino de cada prueba y verificar el comportamiento en la GUI de NMIS, esto consiste en revisar las gráficas de NMIS Runtime Graph, Network_summary y Polling_summary.
Check de servidor
Se requiere realizar una revisión general del hardware del servidor, para obtener lo siguiente:
Sistema Operativo.
Verificación del sistema operativo en donde se encuentra trabajando el sistema de monitoreo.
Comando:
cat /etc/*release* && uname -osmr && uname -v
Resultado:
Code Block |
---|
[root@opmantek ~]# cat /etc/*release* && uname -osmr && uname -v
CentOS release 6.10 (Final)
CentOS release 6.10 (Final)
CentOS release 6.10 (Final)
cpe:/o:centos:linux:6:GA
Linux 2.6.32-754.28.1.el6.x86_64 x86_64 GNU/Linux
#1 SMP Wed Mar 11 18:38:45 UTC 2020
[root@opmantek ~]# |
Detalles de almacenamiento:
Verificación del estado de almacenamiento, memoria libre y detalles de las particiones del S.O.
Comando:
echo -e "\n \e[31m Información de espacio en el disco \e[0m" && df -h && echo -e "\n\n \e[31m Información de uso de RAM \e[0m" && free -m && echo -e "\n\n \e[31m Detalle de discos \e[0m" && fdisk -l
Resultado:
Code Block | ||
---|---|---|
| ||
[root@opmantek ~]# echo -e "\n \e[31m Información de espacio en el disco \e[0m" && df -h && echo -e "\n\n \e[31m Información de uso de RAM \e[0m" && free -m && echo -e "\n\n \e[31m Detalle de discos \e[0m" && fdisk -l
Información de espacio en el disco
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_nmis64-lv_root
59G 2.7G 54G 5% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/sda1 477M 109M 343M 25% /boot
/dev/mapper/vg_nmis64_data-lv_data
321G 11G 295G 4% /data
/dev/mapper/vg_nmis64-lv_var
147G 1.5G 138G 2% /var
Información de uso de RAM
total used free shared buffers cached
Mem: 7984 6891 1093 0 216 1077
-/+ buffers/cache: 5596 2387
Swap: 4071 1589 2482
Detalle de discos
Disk /dev/sda: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008cec3
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 5222 41430016 8e Linux LVM
/dev/sda3 5222 42570 299997810 8e Linux LVM
/dev/sda4 42570 65256 182225295 8e Linux LVM
Disk /dev/sdb: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_nmis64-lv_root: 64.4 GB, 64432898048 | ||
Code Block | ||
| ||
[root@opmantek ~]# echo -e "\n \e[31m Información de espacio en el disco \e[0m" && df -h && echo -e "\n\n \e[31m Información de uso de RAM \e[0m" && free -m && echo -e "\n\n \e[31m Detalle de discos \e[0m" && fdisk -l Información de espacio en el disco Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_nmis64-lv_root 59G 2.7G 54G 5% / tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/sda1 477M 109M 343M 25% /boot /dev/mapper/vg_nmis64_data-lv_data 321G 11G 295G 4% /data /dev/mapper/vg_nmis64-lv_var 147G 1.5G 138G 2% /var Información de uso de RAM total used free shared buffers cached Mem: 7984 6891 1093 0 216 1077 -/+ buffers/cache: 5596 2387 Swap: 4071 1589 2482 Detalle de discos Disk /dev/sda: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 652707833 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0008cec30x00000000 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 5222 41430016 8e Linux LVM /dev/sda3 5222 42570 299997810 8e Linux LVM /dev/sda4 42570 65256 182225295 8e Linux LVMDisk /dev/mapper/vg_nmis64-lv_swap: 4269 MB, 4269801472 bytes 255 heads, 63 sectors/track, 519 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb/mapper/vg_nmis64_data-lv_data: 42350.91 GB, 42949672960350140497920 bytes 255 heads, 63 sectors/track, 522142568 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/vg_nmis64-lv_rootvar: 64160.43 GB, 64432898048160314687488 bytes 255 heads, 63 sectors/track, 783319490 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/vg_nmis64-lv_swap: 4269 MB, 4269801472 bytes 255 heads, 63 sectors/track, 519 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/vg_nmis64_data-lv_data: 350.1 GB, 350140497920 bytes 255 heads, 63 sectors/track, 42568 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/vg_nmis64-lv_var: 160.3 GB, 160314687488 bytes 255 heads, 63 sectors/track, 19490 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 [root@opmantek ~]# |
Análisis de comando top.
Abrimos una consola y simplemente ejecutamos el comando:
top
Nos va a aparecer una interfaz en modo texto que se va a ir actualizando cada 3 segundos. Muestra un resumen del estado de nuestro sistema y la lista de procesos que se están ejecutando. La salida que obtengo en mi ordenador es la siguiente:
[root@opmantek ~]# |
Análisis de TOP.
Se ejecuta el comando top y se visualiza que el servidor presenta lentitud, alto uso de CPU, valores elevados en el load average y iowait, este valor muestra cuánto tiempo pierde su CPU mientras espera que se completen las operaciones de E / S.
Análisis de operaciones lentas de lectura / escritura en disco, red, IPC
El comando dd es muy sensible respecto a los parámetros que maneja, ya que puede ocasionar serios problemas en su servidor, OMK emplea este comando para obtener y medir el rendimiento del servidor y la latencia, por lo que con esto determinamos que la velocidad de escritura y lectura del disco.
Code Block |
---|
[root@SRVLXLIM32 ~]# dd if=/dev/zero of=/data/omkTestFile bs=10M count=1 oflag=direct
1+0 records in
1+0 records out
10485760 bytes (10 MB) copied, 0.980106 s, 15.0 MB/s
[root@SRVLXLIM32 ~]# dd if=/data/omkTestFile of=/dev/null 2>&1
20480+0 records in
20480+0 records out
10485760 bytes (10 MB) copied, 6.23595 s, 1.7 MB/s
[root@SRVLXLIM32 ~]#
|
Tenga en cuenta que se escribió 10 Megabytes para la prueba y 47 MB / s fue el rendimiento y el tiempo que le tomo escribir el bloque fue de 0.223301 segundos del servidor para esta prueba.
Dónde:
if = /dev/zero (if=/dev/input.file): El nombre del archivo de entrada desde el que desea leer.
of = /data/omkTestFile (of=/path/to/output.file): El nombre del archivo de salida en el que desea escribir el archivo de entrada.
bs = 10M (bs=block-size): establezca el tamaño del bloque que desea que use dd. Tenga en cuenta que Linux necesitará espacio libre en RAM. Si su sistema de prueba no tiene suficiente RAM disponible, use un parámetro más pequeño para bs (como 128 MB o 64 MB, etc. o incluso puede probar con 1, 2 o hasta 3 gigabyte).
count = 1 (count=number-of-blocks): El número de bloques que desea que dd lea.
oflag = dsync (oflag=dsync): utilice E / S sincronizadas para los datos. No omita esta opción. Esta opción elimina el almacenamiento en caché y le brinda resultados buenos y precisos
conv = fdatasyn: De nuevo, esto le dice a dd que requiera una “sincronización” completa una vez, justo antes de salir. Esta opción es equivalente a oflag=dsync.
Code Block #General collection. /usr/local/nmis8/admin/support.pl action=collect #If the file is big, we can add the next parameter. /usr/local/nmis8/admin/support.pl action=collect maxzipsize=900000000 #Device collection. /usr/local/nmis8/admin/support.pl action=collect node=<node_name> maxzipsize=900000000
...