Estamos ejecutando un sitio web que actualmente ofrece entre 3 y 5 millones de visitas. Nuestro sitio es un sitio para compartir archivos, por lo que contiene 250,000 archivos y algunos miles de enlaces simbólicos.
El disco duro es un disco SATA de 1500 GB.
Utilizando hdparm
, llegamos a saber que la velocidad de nuestro disco duro se ha reducido a 15-20 MB / s, que era 80 MB / s.
Así que ahora queremos ejecutar fsck
para solucionar el problema del disco.
- ¿
fsck
Resolverá este problema? - ¿Cuánto tiempo
fsck
llevará completar (solo queremos calcular el tiempo de inactividad que vamos a tener)?
hard-drive
linux
kernel
fsck
capacity-planning
khizar ansari
fuente
fuente
Respuestas:
Es de esperar la degradación de la velocidad a medida que aumenta el número de archivos a los que se accede simultáneamente. A las unidades de disco duro no les gusta acceder en paralelo: cada vez que el cabezal de lectura / escritura necesita cambiar los cilindros, pierde varios milisegundos. Incluso si dos archivos están en el mismo cilindro, o incluso en la misma pista, es posible que deba esperar una rotación para moverse de uno a otro. Si mide el rendimiento de la unidad en megabits por segundo, espere que disminuya exponencialmente a medida que aumenta el acceso paralelo.
fsck
no ayudará con esto: solo repara los daños a la estructura del directorio, no realiza ninguna optimización.La solución ideal sería cambiar al almacenamiento de estado sólido ya que no tiene ninguna de las limitaciones físicas de los platos giratorios. Pero eso es probablemente un costo prohibitivo.
El siguiente mejor sería utilizar un RAID optimizado para acceso paralelo. Tenga en cuenta que los RAID se pueden configurar para muchos perfiles de rendimiento diferentes, por lo que deberá tomarse un tiempo para aprender la configuración de cualquier hardware y controladores RAID.
Es posible que pueda reducir el problema utilizando el almacenamiento en caché agresivo del sistema de archivos. Si su sistema tiene suficiente RAM, Linux ya debería estar haciendo esto bastante bien. Ejecute un programa
top
para ver cuánta RAM libre hay. Pero si los archivos más utilizados no caben en la RAM (o cualquier RAM que pueda adquirir), esto realmente no ayudará.Una solución para un pobre sería dividir sus archivos en varios discos duros físicos diferentes (no solo en diferentes particiones en el mismo disco). Esa no es realmente una solución escalable a largo plazo y terminaría costándole más que un RAID decente. Pero podría ser una solución rápida si tiene unidades por ahí.
Para cualquier solución que involucre unidades de disco duro, asegúrese de que tengan una velocidad de rotación rápida y una baja latencia de búsqueda.
He escrito un artículo con algunos antecedentes generales sobre el rendimiento del disco duro aquí:
Consejos UNIX - Sistemas de archivos
fuente
hdparm
punto de referencia tenga mucho que ver con el "acceso paralelo". A mí me parece más como si tuviera un disco defectuoso. Fue más rápido en el pasado y ahora no lo es. Probablemente porque está reubicando sectores.hdparm
pruebas y los resultados en "megabits" o "megabytes" por segundo?Esperaría 5 horas para completar el fsck.
En cambio, consideraría (eso significa: probar, probar y probar) una migración a reiserfs.
fuente
fuente
hdparm hace una lectura secuencial. Su disco del servidor de archivos debería estar buscando mucho, como dijeron los otros chicos.
Si recibe errores de HD, deberían aparecer en su / var / log / en algún lugar.
¿Por qué no prueba "smartctl -t short / dev / sda" y luego "smartctl -t long / dev / sda" ?? ... Con la mayoría de los nuevos discos duros, puede emitir este comando incluso cuando usa HD . Smart te dará algunos resultados. Puede leer el estado de su HDD usando "smartctl --all / dev / sda".
Si está enviando un hdparm a HDD que está montado con acceso concurrente, esa podría ser la respuesta por qué sus resultados son mucho menores que antes.
Debería mover sus datos a una configuración RAID lo antes posible.
fuente