일부 클라우드 호스팅 솔루션의 디스크 IO가 실제로 좋지 않은 것으로 나타났습니다. 이로 인해 디스크 사용량이 적을 때까지 스크립트를 대기시킴으로써 해결할 수있는 몇 가지 문제가 발생합니다.HDD가 PHP와 얼마나 바쁜지 어떻게 확인할 수 있습니까?
PHP를 사용하면 상황을 악화시키지 않으면 서 파일 시스템의 바쁜 (또는 너무 바쁜) 상태를 모니터링 할 수 있습니까?
일부 클라우드 호스팅 솔루션의 디스크 IO가 실제로 좋지 않은 것으로 나타났습니다. 이로 인해 디스크 사용량이 적을 때까지 스크립트를 대기시킴으로써 해결할 수있는 몇 가지 문제가 발생합니다.HDD가 PHP와 얼마나 바쁜지 어떻게 확인할 수 있습니까?
PHP를 사용하면 상황을 악화시키지 않으면 서 파일 시스템의 바쁜 (또는 너무 바쁜) 상태를 모니터링 할 수 있습니까?
Linux 시스템 인 경우 디스크 사용량을 직접 계산할 수 있습니다. 구현하기로 선택한 언어는 동일한 개념을 사용합니다.
커널은 대체로 sysfs을 사용하므로 시스템에 대한 많은 정보가 /sys
에 있습니다. 우리는 원하는 디스크에 대한 정보를 정기적으로 수집하고 그 차이를 기반으로 사용량을 계산할 수 있습니다.
내 시스템에서는 디스크가 sda
인 경우 사용자가 다를 수 있습니다. 우리는 /sys/class/block/<dev>/stat
에 대한 the Kernel documentation를 보면
$ cat /sys/class/block/sda/stat
42632 25 2045318 247192 6956543 7362278 123236256 23878974 0 3703033 24119492
이제 우리는 출력의 각 열에 대한 다음 설명을 볼 수 있습니다.
Name units description
---- ----- -----------
read I/Os requests number of read I/Os processed
read merges requests number of read I/Os merged with in-queue I/O
read sectors sectors number of sectors read
read ticks milliseconds total wait time for read requests
write I/Os requests number of write I/Os processed
write merges requests number of write I/Os merged with in-queue I/O
write sectors sectors number of sectors written
write ticks milliseconds total wait time for write requests
in_flight requests number of I/Os currently in flight
io_ticks milliseconds total time this block device has been active
time_in_queue milliseconds total wait time for all requests
우리가 cron 일정으로 실행하고 일부 대기 시간을 비교하면 각 작업을 기다리는 시간을 알 수 있습니다. 총 IOPS 및 RW 대역폭에 대한 다른 통계도 있습니다. 문서는 각 필드에 대해 자세히 다룹니다.
)선택 무엇이든간에 언어, 파일 기술자는 디스크에 대한 정보는 우리가 일정에 이렇게 할 경우
/sys/class/block/<dev>/stat
, 우리는 멋진 그래프를 그릴 수있을 것 얻기 위해 엽니 다
이 답변은 너무 좋았습니다. 나는 그것을 시험해 볼 기회를 얻지 못해서 미안했습니다. 그때 나는 그 프로젝트에 더 이상 참여하지 않아 얼마나 기뻤는지 기억했다. –
죄송합니다. 게시물을 다시 게시하십시오. 메타에 그것을보고 내 그래프를 공유해야만했습니다 : D 그러나 프로젝트에 관계없이 그래프는 항상 문제를 식별 할 수 있어야하는 좋은 방법입니다! 행운을 빕니다! (나는 [Grafana] (https : // grafana.co.kr /)) 죄송합니다. 게시물을 더 빨리 보지 못했습니다! –
안녕하세요, 문제 없습니다. 당신은 그 질문에 무엇을해야하는지에 대한 나의 걱정을 해결했습니다. 지금은 유용하기 때문에, 그것은 승리입니다. –
글쎄, 당신은 분명히 모든 종류의 시스템 유틸리티를 작동시키고 결과물을 평가하여 사람으로 그릴 수있는 모든 정보를 얻을 수 있습니다. 그러나 나는 이것이 당신이 묘사하는 시나리오에서 실제로 도움이되는지 의심 스럽다. 가상화 된 시스템에 나타나는 "하드 디스크"는 시뮬레이션 된 것입니다. 그래서 유틸리티는 몇 가지 정보를 보여줄 수 있습니다. 그러나 질문은 그 안에 얼마나 많은 진실이 있는지입니다. 이러한 시나리오의 성능 저하는 시스템 하드웨어 (가상 어쨌든)에있는 것이 아니라 제어하거나 예측할 수없는 모든 서비스를 제공하는 전체 네트워크 클러스터 내에서 발생합니다. – arkascha
현재 솔루션으로 문제가 발생하면 더 나은 공급자 또는 더 나은 제안을 얻을 수 있습니다. 서로 다른 제공 업체간에 _ 큰 차이가 있습니다. 종종 잘 알려지지 않은 공급자는 잘 알려진 회사보다 훨씬 나은 성능을 제공합니다. – arkascha
필자는 더 이상 프로젝트에 참여하지 않겠다는 사실을 덧붙여 야합니다. 이 시스템은 HDD 읽기에 불경스러운 지연을 보였습니다. DB 대신 HDD에 캐싱하면 실제로 연결 시간이 초과되었습니다. 그것은 내가 함께 일한 최악의 플랫폼이었습니다. 나는 DB에 config vars를 저장하는 것을 끝냈다. –