주요 콘텐츠로 건너뛰기

통신 계층 대기 시간의 영향은 일반적으로 응용 프로그램 성능 문제를 해결하려고 할 때 추정되지만 실용적인 솔루션으로 노력을 지시하는 경우 올바른 이해가 중요합니다.

첫째, 통신 계층 대기 시간에 의해 로컬 시스템에서 원격 시스템으로 다시 얻는 데 패킷이 걸리는 시간을 의미합니다. 통신 계층 대기 시간의 가장 큰 요인은 적어도 지리적으로 분리된 호스트의 거리입니다. 다른 주요 구성 요소는 패킷을 처리하는 로컬 호스트와 원격 호스트 간의 장치 수입니다. 여기에는 라우터 및 방화벽과 같은 것들이 포함됩니다. 링크의 대역폭은 대부분의 사람들이 생각하는 만큼 크지 않은 역할을 합니다. 대역폭은 삽입 지연에 영향을 미칩니다 – 패킷을 와이어에 넣는 데 걸리는 시간이지만 와이어의 신호는 대역폭이 아닌 매체를 기반으로 속도로 이동합니다. 이 토론의 나머지 부분에서는 통신 계층 대기 시간을 의미할 때 대기 시간을 사용합니다.

대기 시간이 어떻게 영향을 미치는지 보여 드리기 위해 응용 프로그램에서 클라이언트 응용 프로그램에 일부 데이터를 입력하고 반환을 명중한다고 가정해 보겠습니다. 클라이언트 응용 프로그램은 서버 응용 프로그램에 메시지를 보내고, 응답을 기다린 다음 다른 메시지를 보내고, 응답을 기다리는 등; "회전"의 일부 번호 N에 대한. N이 끝나면 클라이언트 응용 프로그램이 결과를 다시 제공합니다.

10회 회전이 필요하며 서버 응용 프로그램 1ms가 클라이언트 메시지를 처리하고 답변을 다시 보내는 데 걸린다고 가정합니다. 대기 시간이 1ms로 응답 시간은 10 *(1ms + 1ms) 또는 20ms를 얻습니다. 이제 비행기에 타고 시카고로 여행, 서버는 지금 말 50ms의 대기 시간과 10 * (50ms + 1ms) 또는 550ms의 응답 시간을 가지고 그래서 보스턴에 머물. 이것은 눈에 띄는 하지만 고통 스러운 충분. 회전 수를 100으로 늘리고 이제 고통스러운 5.5 초 응답 시간을 갖게됩니다. 100회 회전이 과도하다고 생각할 수 있지만 복잡한 양식을 작성하는 복잡한 데이터베이스 쿼리 나 응용 프로그램은 그렇게 할 수 있습니다. 응용 프로그램에 필요한 회전 수를 알고 계십니까?
OSL을 통해 copy_file 수행하는 것은 또한이 동작을 나타낸다. OSL은 4K 트랜잭션에서 파일을 보냅니다. 각 트랜잭션에는 응답이 필요하므로 1,000,000 바이트 파일은 1,000,000 / 4,096 = 245 트랜잭션이 필요하거나 이전 단락의 명명방법을 사용하기 위해 회전합니다. 다시 말하지만, 트랜잭션을 처리하는 1ms와 1ms 대기 시간을 가정하면 copy_file 490ms가 소요됩니다. 대기 시간을 50ms로 늘리면 12.495초가 소요됩니다. 파일을 1,000,000,000바이트로 늘리려면 244,141개의 트랜잭션이 필요합니다. 1ms 대기 시간 488.282초, 50ms 대기 시간에 대해 12,451.191초 또는 거의 3.5시간 입니다.

대기 시간을 측정하는 가장 간단한 방법은 ping입니다.

ping 192.168.200.197
Pinging host 192.168.200.197 : 192.168.200.197
ICMP Echo Reply:TTL 53 time = 84 ms
ICMP Echo Reply:TTL 53 time = 80 ms
ICMP Echo Reply:TTL 53 time = 81 ms
ICMP Echo Reply:TTL 53 time = 96 ms
Host 192.168.200.197 replied to all 4 of the 4 pings

 

안타깝게도 네트워크가 ping 패킷을 차단하거나 호스트가 패킷을 무시하는 것이 일반화되고 있으므로 STCP에 무시하라고 지시할 수도 있습니다(15.3, 16.2 및 17x에서 시작). ping을 사용할 수 없는 경우 packet_monitor 사용하여 연결 요청에 대한 응답을 얻는 데 걸리는 시간을 시간 동안 사용할 수 있습니다. 예를 들어 명령으로 packet_monitor 시작 "start_process 'packet_monitor -numeric -time_stamp -filter -host A.B.C.D -port NNN' -privileged". 그런 다음 명령을 입력합니다."telnet A.B.C.D NNN". 당신은 몇 가지 연결을 하고 평균을 얻어야 합니다. 원격 호스트의 사용되지 않는 포트에 연결합니다. 이렇게 하면 추적의 패킷 수가 줄어들지만 방화벽이 포트를 차단하는 경우 활성 포트를 사용해야 할 수 있습니다.

 

start_process 'packet_monitor -numeric -time_stamp -filter -host 192.168.200.197
+ -port 6666' -privileged
ready 09:12:42
telnet 192.168.200.197 6666
Trying...
telnet: Unable to connect to remote host: The connection was refused.
ready 09:12:53
telnet 192.168.200.197 6666
Trying...
telnet: Unable to connect to remote host: The connection was refused.
ready 09:12:56
telnet 192.168.200.197 6666
Trying...
telnet: Unable to connect to remote host: The connection was refused.
ready 09:12:58
telnet 192.168.200.197 6666
Trying...
telnet: Unable to connect to remote host: The connection was refused.
ready 09:12:58
stop_process packet_monitor -no_ask
Stopping Noah_Davids.CAC (packet_monitor).
ready 09:13:07
d packet_monitor.out
%phx_vos#m16_mas>SysAdmin>Noah_Davids>packet_monitor.out 09-11-13 09:13:17 mst
Noah_Davids.CAC logged in on %phx_vos#m16 at 09-11-13 09:12:42 mst.
packet_monitor -numeric -time_stamp -filter -host 192.168.200.197 -port 6666
***********************************************************
WARNING: failure to specify a specific interface will cause
packet_monitor to bind to ALL interfaces on the module,
greatly increasing the amount of Streams memory used!!!
***********************************************************
dir                                                 icmp type
+     tcp
hh:mm:ss.ttt    len proto source             destination         src port dst p
+ort type
9:12:52.984 T 0004 TCP 172.16.77.128       192.168.200.197           62515
+ 6666 S
9:12:53.067 R 0000 TCP 192.168.200.197     172.16.77.128              6666
+ 62515 RA
9:12:56.643 T 0004 TCP 172.16.77.128       192.168.200.197           62516
+ 6666 S
9:12:56.724 R 0000 TCP 192.168.200.197     172.16.77.128              6666
+ 62516 RA
9:12:58.003 T 0004 TCP 172.16.77.128       192.168.200.197           62517
+ 6666 S
9:12:58.086 R 0000 TCP 192.168.200.197     172.16.77.128              6666
+ 62517 RA
9:12:58.805 T 0004 TCP 172.16.77.128       192.168.200.197           62518
+ 6666 S
9:12:58.887 R 0000 TCP 192.168.200.197     172.16.77.128              6666
+ 62518 RA
ready 09:13:07
Process finished.
Terminating Noah_Davids.CAC (packet_monitor). Process stopped by Noah_Davids.CA
+C.

 

Latency times:   58.887 - 58.805 = 0.082 == 82ms
58.086 - 58.003 = 0.083 == 83ms
56.724 - 56.643 = 0.081 == 81ms
53.067 - 52.984 = 0.083 == 83ms

당신은 또한 내가 packet_monitor 사용할 필요없이 그 시간을 연결을 쓴 프로그램을 사용할 수 있습니다. http://members.cox.net/ndav1/self_published/stcp_tping.doc 참조하십시오. stcp_tping 명령은 원격 호스트의 활성 포트에 연결해야 합니다. 이 경우 포트 23(텔넷)을 사용하고 있지만 활성 포트가 작동합니다. 명령 끝의 숫자 1은 요청이 초당 한 번 전송된다는 것을 나타냅니다.

stcp_tping 192.168.200.197 23 1
tping 192.168.200.197 23 1
Success/Tries=Percent    min/average/max success times
1/1=100.000%             83.284/83.284/83.284     Connection in 83.284 ms
2/2=100.000%             81.697/82.490/83.284     Connection in 81.697 ms
3/3=100.000%             80.858/81.946/83.284     Connection in 80.858 ms
4/4=100.000%             80.858/81.895/83.284     Connection in 81.743 ms
^C

 

측정할 시스템이 아직 없는 경우 대기 시간을 어떻게 추정할 수 있습니까? 가장 간단한 방법은 동일한 지리적 영역에서 시스템을 찾고 대기 시간을 측정하는 것입니다. 이것은 당신에게 매우 거친 견적을 줄 것이다. 나는 그들이 어디에 있는지 알고 있기 때문에 대학과 대학을 사용하는 것을 좋아하고 기회는 캠퍼스에서 자신의 시스템을 호스팅하고, 적어도 큰 대학, 아마 높은 대역폭 인터넷 링크를 가지고 있다. 웹 사이트 http://www.utexas.edu/world/univ/state/ 주별로 많은 대학의 웹 사이트를 나열합니다. 웹 사이트는 http://www.bulter.nl/universities/ 전 세계의 대학의 웹 사이트를 나열합니다. 기업 VPN과 인터넷을 통해 통신하는 것 사이에는 상당한 차이가 있을 수 있습니다.

 

문제를 어떻게 해결할 수 있습니까? 당신은 아마 할 수 없습니다. 일부 링크의 대역폭을 제어할 수 있으며 일부 네트워크 장치를 통해 일부 네트워크 장치를 제어할 수 있지만 거리를 제어할 수 없습니다. 필요한 회전 수를 줄임으로써 대기 시간에 덜 민감하도록 응용 프로그램을 변경하는 것입니다.

 

OSL을 사용하여 대용량 파일을 장거리로 이동하는 경우 내가 말할 수있는 모든 것은 하지 않습니다. 파일 유형에 따라 FTP 또는 SFTP 또는 SCP를 사용할 수 있습니다. Stratus ftp 사이트에는 OSL을 사용하지 않고 TCP를 통해 파일을 효과적으로 복사할 수 있는tcp_save(ftp://ftp.stratus.com/vos/network/tcp_save.save.evf.gz)이라는응용 프로그램이 있습니다. 약간의 설정이 필요하지만 대용량 파일의 복사 시간을 크게 줄일 수 있습니다.

 

© 2024 스트라투스 테크놀로지스.