성능, 오해와 진실
-
캐싱 (Caching)은 무조건 성능이 좋다?성능, 오해와 진실 2021. 1. 15. 22:45
"캐시를 켜야 성능이 좋다.", "캐싱으로 성능이 좋아진다." 이 주제 역시 아주 많은 사람들이 이렇게 알고 있다. 맞다. Caching은 성능 향상을 위해 나온 기술이니까. 시스템에는 다양한 입출력 방식이 있다. * Source : 실무로 배우는 시스템 성능 최적화 by 권문수 일반 파일시스템은, 데이터 읽기를 요청받으면 파일 버퍼 캐시에 그 데이터가 존재하는지 확인한 후, 캐싱되어 있지 않으면 디스크에서 읽어와 캐시에 올리고 애플리케이션에 데이터를 넘겨준다. 직접 입출력 (Direct IO)은, 파일 버퍼 캐시 영역을 거치지 않고, 디스크로부터 애플리케이션으로 바로 파일 데이터가 전달되게 한다. 그래서 DIO는 항상 디스크로부터 sync read가 발생하기 때문에 성능이 나쁠 수 있다. 그러나 DB의..
-
쓰레드 (thread)를 높이면 성능이 높아진다?성능, 오해와 진실 2021. 1. 14. 21:47
스토리지 성능 테스트 시 쓰레드를 과도하게 설정하여 부하를 주는 경우가 참 많다. 아마도 조금이라도 더 높은 처리량 (IOPS)을 획득하기 위한 마음으로 보인다. 결론을 이야기하기 전에, 예전의 경험을 먼저 끄집어내어 본다. 과거, 정보시스템의 성능을 검증할 때, 고객으로부터 항상 요청받는 것이 하나 있었다. 자기들 시스템은 사용자들이 많이 접속하니까, 부하를 많이 때려(?) 봐달라고 한다. 그래서 Virtual user를 많이 넣어달라고.. 사실, 부하를 많이 넣는 것이 포인트가 아니라, 부하를 증가시키면서 나타나는 시스템의 반응과 변화를 모니터하고 최대 성능을 확인하는 것이 중요하다. 부하를 넣다 보면 어느 지점에서는 시스템의 처리량이 한계를 맞이하기 마련인데, 무조건 많이 넣어달라고만 하는 것이다...
-
CPU 사양이 높다고 성능이 더 좋을까?성능, 오해와 진실 2021. 1. 13. 23:34
하드웨어 제품을 홍보할 때, 최신의 CPU 탑재로 인한 고성능을 강조하는 경우가 흔하다. 그러나, 고사양의 최신 CPU를 장착했다고 하여 항상 그 제품의 성능이 더 뛰어나다고 할 수는 없다. 성능은 CPU 말고도 여러 가지 요소에 의해 좌우되기 때문이다. 동일한 제품에서는 CPU 사양이 높을 경우 더 높은 성능을 발휘하는 것은 당연하다. 그러나, 제조업체가 달라지면 완전히 다른 이야기가 된다. 스토리지 성능은 CPU 외에도 Caching이나 IO 처리방식, 대역폭 등 영향을 미치는 여러 가지 기술적인 요소가 많으며, 이들 기술의 총체적인 합의 결과가 최종 성능으로 이어지는 까닭이다. 시장에서는 이러한 제조사들의 고유한 기술적 역량을 통해 서로 경쟁을 하고 있다. 그래서 하드웨어 사양만으로는 절대적인 성능..
-
플래시는 비싸다? (feat. SSD는 HDD보다 비싸다?)성능, 오해와 진실 2021. 1. 12. 23:42
필자는 SSD (Solid State Drive)를 주변인들보다 조금 일찍 사용한 것 같다. 정확한 연도는 기억나지 않지만 윈도 XP를 사용할 때부터였다. SSD가 나오기 이전, HDD (Hard Disk Drive)를 선택할 때에는 5400 rpm 보다는 7200 rpm을 선호하였고, 새로운 기술 (Ultra DMA-33)이 발표되었을 때에는 여러 제조사를 비교해보고 당시 잘 나가던 퀀텀 하드디스크를 구매하기도 하였다. 또한, E-IDE 방식 대신 SCSI HDD로도 바꾸었다. 그만큼, 컴퓨터의 성능은 무엇보다도 IO 성능을 개선해야 효과가 크다는 사실을 알았기 때문이다. 그러나, 상대적으로 높은 가격과, CPU 성능의 중요성만 인지하는 사람들이 많았기에, 이러한 선택이 대중적이지는 않았다. 그런데, ..
-
스토리지 1대 추가 시 더 빨라진다?성능, 오해와 진실 2021. 1. 11. 23:44
스토리지 1대 사용 중 1대 더 추가 증설했는데 더 빨라지지 않았다는 고객의 불만을 가끔 접한다. 오히려 더 느려졌다고 이야기할 때도 있다. 결론은 당연하다. 성능은 두 가지 관점에서 말할 수 있다. 스토리지 시스템 측면에서의 처리량과 지연시간. 처리량은 대체로 더 늘어난다. 한 대의 스토리지보다는 두 대가 더 많은 I/O를 감당할 수 있기 때문이다. 즉, 성능이 향상된다. 그러나 지연시간, 즉, 응답 시간은 다르다. 2대의 스토리지가 하나의 시스템으로 동작하려면 컨트롤러 간 데이터 동기화가 필요하므로 응답 시간 손실이 불가피하게 생길 수밖에 없다. 그것이 크든 작든, 체감할 수 있을 정도이든 아니든.. 그래서 사실상 더 빨라지기는 어렵고 조금은 느려질 수밖에 없다. 물론 대부분 그 영향이 눈에 띌 정도..
-
부하테스트 시 볼륨이 커야 메모리 캐싱 효과가 없다?성능, 오해와 진실 2021. 1. 9. 00:58
이것도 참 많이 들어본 말 중의 하나이나, 잘못된 상식이다. BMT (Bench Mark Test)를 하면 스토리지의 최대 성능을 측정하게 된다. 이때, 다수의 Disk volume에 IO를 발생시킨다. 그런데 볼륨 사이즈가 메모리 사이즈보다 작으면 메모리 내에 잔존해 있는 데이터를 액세스함으로써 정확한 성능 측정이 되지 않는 것으로 오해하고 있는 사람들이 많다. 즉, 메모리 캐싱 효과에 의해 실제 스토리지 성능보다 더 잘 나온다는 것이다. 과연 그럴까? 우선, 스토리지 자체의 성능을 확인하는 것이므로 Raw device에 직접 부하를 생성하고, 또 메모리를 Bypass 하기 위해 vdbench 툴의 경우 direct 옵션을 사용하는 것이 일반적이다. 그렇기에 캐시 메모리에서의 캐싱은 일어나지 않는다. ..
-
캐시 (Cache) 메모리가 크면 성능이 더 좋을까?성능, 오해와 진실 2021. 1. 8. 20:26
일반적으로, 캐시 메모리 (Cache memory)가 크면 성능이 좋은 것으로 알려져 있다. 또한, 캐시 메모리를 증설하면 성능이 더 향상되는 것으로 알고 있다. 물론, 틀린 것은 아니지만, 반드시 그런 것 또한 아니다. 먼저, 메모리의 용도와 동작 방식을 살펴보자. 디스크의 실행 파일을 실행시켰을 때, 해당 파일과 관련 라이브러리 등이 메모리로 로드된다. 이때 프로그램이 돌아가면서 필요한 데이터도 저장하고 캐싱의 역할도 할 것이다. 이렇게 여러 종류의 프로그램이 실행되면서 메모리 공간을 차지하게 된다. 만일 이런 와중에 메모리 공간이 부족하면 기존의 일부 데이터를 디스크로 내려써서 (Disk Swapping) 빈 공간을 확보하여 메모리 사용에 문제가 없도록 가상 메모리 기법을 이용한다. 즉, 메모리가 ..
-
6G SAS가 12G SAS로 바뀌면 더 빠를까?성능, 오해와 진실 2021. 1. 7. 23:53
스토리지 백엔드 (Back-end) 대역폭 (Bandwidth)이 타 제품보다 작아서 성능이 떨어진다고 생각하는 이들이 있다. 이는, 맞을 수도 있고, 틀릴 수도 있는데, 실제로는 별 영향이 없는 경우가 많다. 스토리지 최대 성능 발휘 시 6G의 대역폭을 100% 사용하는 경우라면, 12G로 변경 시 성능이 향상될 수 있다. 일반적으로 최대 IO 처리 시 백엔드 전체 대역폭을 사용하는 경우는 드물다. 절반도 채 사용하지 않는다. 대역폭의 확장은 더 빠를 수 있는 토대가 마련되는 것일 뿐, 직접적인 성능 영향을 미치는 요소라 말하기는 어렵다. 스토리지 성능은 채널의 대역폭보다는 컨트롤러의 OS가 핵심이다.