java web 技术内幕 读书笔记

linux curl
curl www.laifeng.com > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 64578    0 64578    0     0  1685k      0 --:--:-- --:--:-- --:--:-- 1704k


root@m1hadoop:~# curl www.baidu.com -I
HTTP/1.1 200 OK
Date: Wed, 08 Apr 2015 05:35:53 GMT
Content-Type: text/html; charset=utf-8
Connection: Keep-Alive
Vary: Accept-Encoding
Set-Cookie: BAIDUID=02B552B2DED84F73E61341A542C21292:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=02B552B2DED84F73E61341A542C21292; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=0; path=/
Set-Cookie: BD_HOME=0; path=/
Set-Cookie: H_PS_PSSID=11192_1456_12772_13075_12826_12868_13320_12691_13411_8502_13348_12723_12797_12735_13085_13310_13324_13210_12836_13162_13256_8498; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Cache-Control: private
Cxy_all: baidu+0503c15ef19aed449289e5beec7d831a
Expires: Wed, 08 Apr 2015 05:35:49 GMT
X-Powered-By: HPHP
Server: BWS/1.1
BDPAGETYPE: 1
BDQID: 0xb38166cc00001f1b
BDUSERID: 0



root@m1hadoop:~# cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.155.100.20
nameserver 10.10.0.21
search 1verge.com


TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段。

跟踪域名解析过程
nslookup



dig www.taobao.com

; <<>> DiG 9.8.1-P1 <<>> www.taobao.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62258
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.taobao.com.                        IN      A

;; ANSWER SECTION:
www.taobao.com.         1513    IN      CNAME   www.gslb.taobao.com.danuoyi.tbcache.com.
www.gslb.taobao.com.danuoyi.tbcache.com. 14 IN A 202.108.249.241
www.gslb.taobao.com.danuoyi.tbcache.com. 14 IN A 202.108.249.251
www.gslb.taobao.com.danuoyi.tbcache.com. 14 IN A 202.108.250.241
www.gslb.taobao.com.danuoyi.tbcache.com. 14 IN A 202.108.250.251

;; Query time: 5 msec
;; SERVER: 10.155.100.20#53(10.155.100.20)
;; WHEN: Tue Apr  7 23:07:22 2015
;; MSG SIZE  rcvd: 146


dig www.taobao.com +trace
跟踪这个域名的解析过程
dig www.taobao.com +trace

; <<>> DiG 9.8.1-P1 <<>> www.taobao.com +trace
;; global options: +cmd
.                       3600    IN      NS      i.root-servers.net.
.                       3600    IN      NS      j.root-servers.net.
.                       3600    IN      NS      k.root-servers.net.
.                       3600    IN      NS      l.root-servers.net.
.                       3600    IN      NS      m.root-servers.net.
.                       3600    IN      NS      a.root-servers.net.
.                       3600    IN      NS      b.root-servers.net.
.                       3600    IN      NS      c.root-servers.net.
.                       3600    IN      NS      d.root-servers.net.
.                       3600    IN      NS      e.root-servers.net.
.                       3600    IN      NS      f.root-servers.net.
.                       3600    IN      NS      g.root-servers.net.
.                       3600    IN      NS      h.root-servers.net.
;; Received 289 bytes from 10.155.100.20#53(10.155.100.20) in 72 ms

com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
;; Received 504 bytes from 192.58.128.30#53(192.58.128.30) in 4973 ms

taobao.com.             172800  IN      NS      ns4.taobao.com.
taobao.com.             172800  IN      NS      ns5.taobao.com.
taobao.com.             172800  IN      NS      ns6.taobao.com.
taobao.com.             172800  IN      NS      ns7.taobao.com.
;; Received 184 bytes from 192.52.178.30#53(192.52.178.30) in 354 ms

www.taobao.com.         1800    IN      CNAME   www.gslb.taobao.com.danuoyi.tbcache.com.
danuoyi.tbcache.com.    10800   IN      NS      danuoyins4.tbcache.com.
danuoyi.tbcache.com.    10800   IN      NS      danuoyins6.tbcache.com.
danuoyi.tbcache.com.    10800   IN      NS      danuoyins8.tbcache.com.
danuoyi.tbcache.com.    10800   IN      NS      danuoyins7.tbcache.com.
danuoyi.tbcache.com.    10800   IN      NS      danuoyins9.tbcache.com.
danuoyi.tbcache.com.    10800   IN      NS      danuoyins5.tbcache.com.
;; Received 328 bytes from 110.75.20.29#53(110.75.20.29) in 42 ms



GTM负责外网的负载均衡,比如北京的用户访问被分配到北京的数据中心,南京的用户访问被分配到深圳的数据中心。
LTM负责内网的负载均衡,比如一个用户访问进来,由LTM负责具体分配到哪个服务器来处理。

常规的CDN都是回源的。即:当有用户访问某一个URL的时候,如果被解析到的那个CDN节点没有缓存响应的内容,或者是缓存已经到期,就会回源站去获取。如果没有人访问,那么CDN节点不会主动去源站拿的。

17:54 [[email protected]]$ iostat
Linux 2.6.32-220.el6.x86_64 (a01.offline.stat.laifeng.m6.youku)         2015年04月10日  _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.51    0.00    0.26    0.10    0.00   98.13

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               2.33         6.93       300.55   56906732 2468047708



17:54 [[email protected]]$ cat /proc/sys/net/ipv4/ip_local_port_range 
1024    65000

65000-1024=63976

出现大量TIME_WAIT,将/proc/sys/net/ipv4/tcp_fin_timeout设置为更小的值来快速释放请求。
17:56 [[email protected]]$ cat /proc/sys/net/ipv4/tcp_fin_timeout
5



 netstat -tunple | grep .[1-4]
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      0          25247484   -                   
tcp        0      0 0.0.0.0:21296               0.0.0.0:*                   LISTEN      0          25279969   -                   
tcp        0      0 0.0.0.0:2999                0.0.0.0:*                   LISTEN      29         25279941   -                   
tcp        0      0 0.0.0.0:41978               0.0.0.0:*                   LISTEN      0          168874942  -                   
tcp        0      0 10.100.20.51:5308           0.0.0.0:*                   LISTEN      0          10299      -                   
tcp        0      0 0.0.0.0:3360                0.0.0.0:*                   LISTEN      27         126465794  -                   
tcp        0      0 0.0.0.0:22022               0.0.0.0:*                   LISTEN      0          10060      -                   
tcp        0      0 127.0.0.1:199               0.0.0.0:*                   LISTEN      0          10026      -                   
tcp        0      0 :::8011                     :::*                        LISTEN      500        185203471  23084/java          
tcp        0      0 :::3533                     :::*                        LISTEN      29         25279949   -                   
tcp        0      0 :::111                      :::*                        LISTEN      0          25247489   -                   
tcp        0      0 :::19925                    :::*                        LISTEN      500        184462256  12313/java          
tcp        0      0 :::3647                     :::*                        LISTEN      0          168874943  -                   
tcp        0      0 :::11012                    :::*                        LISTEN      500        75328206   41678/java          
tcp        0      0 :::22022                    :::*                        LISTEN      0          10062      -                   
udp        0      0 0.0.0.0:161                 0.0.0.0:*                               0          10024      -                   
udp        0      0 0.0.0.0:946                 0.0.0.0:*                               0          25279929   -                   
udp        0      0 0.0.0.0:11592               0.0.0.0:*                               0          183624060  -                   
udp        0      0 0.0.0.0:40154               0.0.0.0:*                               29         25279937   -                   
udp        0      0 0.0.0.0:736                 0.0.0.0:*                               0          25247483   -                   
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               0          25247479   -                   
udp        0      0 0.0.0.0:6791                0.0.0.0:*                               0          25279968   -                   
udp        0      0 :::736                      :::*                                    0          25247488   -                   
udp        0      0 :::111                      :::*                                    0          25247486   -                   
udp        0      0 :::30065                    :::*                                    29         25279945   - 


18:18 [[email protected]]$ netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t", state[key]}'
TIME_WAIT        8651
CLOSE_WAIT       1
FIN_WAIT1        20
ESTABLISHED      247
SYN_RECV         147
CLOSING          1

18:19 [[email protected]]$ netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t", state[key]}'
TIME_WAIT        44821
CLOSE_WAIT       8
FIN_WAIT1        33
ESTABLISHED      99
SYN_RECV         17
CLOSING          2



tty:[2] jobs:[0] cwd:[/opt/nfs/10.100.20.33/logs/data/stat/web]
18:19 [[email protected]]$ cat /proc/net/netstat
TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned OutOfWindowIcmps LockDroppedIcmps ArpFilter TW TWRecycled TWKilled PAWSPassive PAWSActive PAWSEstab DelayedACKs DelayedACKLocked DelayedACKLost ListenOverflows ListenDrops TCPPrequeued TCPDirectCopyFromBacklog TCPDirectCopyFromPrequeue TCPPrequeueDropped TCPHPHits TCPHPHitsToUser TCPPureAcks TCPHPAcks TCPRenoRecovery TCPSackRecovery TCPSACKReneging TCPFACKReorder TCPSACKReorder TCPRenoReorder TCPTSReorder TCPFullUndo TCPPartialUndo TCPDSACKUndo TCPLossUndo TCPLoss TCPLostRetransmit TCPRenoFailures TCPSackFailures TCPLossFailures TCPFastRetrans TCPForwardRetrans TCPSlowStartRetrans TCPTimeouts TCPRenoRecoveryFail TCPSackRecoveryFail TCPSchedulerFailed TCPRcvCollapsed TCPDSACKOldSent TCPDSACKOfoSent TCPDSACKRecv TCPDSACKOfoRecv TCPAbortOnSyn TCPAbortOnData TCPAbortOnClose TCPAbortOnMemory TCPAbortOnTimeout TCPAbortOnLinger TCPAbortFailed TCPMemoryPressures TCPSACKDiscard TCPDSACKIgnoredOld TCPDSACKIgnoredNoUndo TCPSpuriousRTOs TCPMD5NotFound TCPMD5Unexpected TCPSackShifted TCPSackMerged TCPSackShiftFallback
TcpExt: 0 0 3 0 186718 13422 7 17 0 0 322237 78250 0 0 0 0 4369693 5424 8900 0 0 2022428405 323175290 22206230704 0 3489547955 114375378 299341056 1944267878 6 28927 0 5 1 3 0 3 14 535 100 53673 1194 0 5595 672 53486 2520 18430 50444 5 2344 78 48742817 9428 74 5332 91 0 210339 19 0 44 0 0 0 0 4113 783 2 0 0 38683 76959 63628
IpExt: InNoRoutes InTruncatedPkts InMcastPkts OutMcastPkts InBcastPkts OutBcastPkts InOctets OutOctets InMcastOctets OutMcastOctets InBcastOctets OutBcastOctets
IpExt: 0 0 4 0 0 0 3007677322734 395066245888 128 0 0 0
tty:[2] jobs:[0] cwd:[/opt/nfs/10.100.20.33/logs/data/stat/web]
18:25 [[email protected]]$ cat /proc/net/snmp
Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates
Ip: 1 64 4328108569 0 0 0 0 0 4328108569 3570618131 0 35 0 0 0 0 0 0 0
Icmp: InMsgs InErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps
Icmp: 88177 0 19948 31 0 0 0 68195 3 0 0 0 0 68207 0 9 0 0 0 0 3 68195 0 0 0 0
IcmpMsg: InType0 InType3 InType8 InType11 OutType0 OutType3 OutType8
IcmpMsg: 3 19948 68195 31 68195 9 3
Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts
Tcp: 1 200 120000 -1 148459742 105531 20004 234844 24 4327835540 3570164939 136763 67 189167
Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors
Udp: 211136 10 0 274520 0 0
UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors
UdpLite: 0 0 0 0 0 0
tty:[2] jobs:[0] cwd:[/opt/nfs/10.100.20.33/logs/data/stat/web]
18:25 [[email protected]]$ netstat -s
Ip:
    4328110857 total packets received
    0 forwarded
    0 incoming packets discarded
    4328110857 incoming packets delivered
    3570620298 requests sent out
    35 dropped because of missing route
Icmp:
    88177 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 19948
        timeout in transit: 31
        echo requests: 68195
        echo replies: 3
    68207 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 9
        echo request: 3
        echo replies: 68195
IcmpMsg:
        InType0: 3
        InType3: 19948
        InType8: 68195
        InType11: 31
        OutType0: 68195
        OutType3: 9
        OutType8: 3
Tcp:
    148459742 active connections openings
    105531 passive connection openings
    20004 failed connection attempts
    234844 connection resets received
    24 connections established
    4327837826 segments received
    3570167104 segments send out
    136763 segments retransmited
    67 bad segments received.
    189168 resets sent
Udp:
    211136 packets received
    10 packets to unknown port received.
    0 packet receive errors
    274520 packets sent
UdpLite:
TcpExt:
    3 invalid SYN cookies received
    186718 packets pruned from receive queue because of socket buffer overrun
    13422 packets pruned from receive queue
    7 packets dropped from out-of-order queue because of socket buffer overrun
    17 ICMP packets dropped because they were out-of-window
    322240 TCP sockets finished time wait in fast timer
    78250 time wait sockets recycled by time stamp
    4369729 delayed acks sent
    5424 delayed acks further delayed because of locked socket
    Quick ack mode was activated 8900 times
    2022433357 packets directly queued to recvmsg prequeue.
    323176655 packets directly received from backlog
    22206594458 packets directly received from prequeue
    3489551024 packets header predicted
    114377336 packets header predicted and directly queued to user
    299341071 acknowledgments not containing data received
    1944271044 predicted acknowledgments
    6 times recovered from packet loss due to fast retransmit
    28927 times recovered from packet loss due to SACK data
    Detected reordering 5 times using FACK
    Detected reordering 1 times using SACK
    Detected reordering 3 times using reno fast retransmit
    3 congestion windows fully recovered
    14 congestion windows partially recovered using Hoe heuristic
    TCPDSACKUndo: 535
    100 congestion windows recovered after partial ack
    53673 TCP data loss events
    TCPLostRetransmit: 1194
    5595 timeouts after SACK recovery
    672 timeouts in loss state
    53486 fast retransmits
    2520 forward retransmits
    18430 retransmits in slow start
    50444 other TCP timeouts
    TCPRenoRecoveryFail: 5
    2344 sack retransmits failed
    78 times receiver scheduled too late for direct processing
    48742817 packets collapsed in receive queue due to low socket buffer
    9428 DSACKs sent for old packets
    74 DSACKs sent for out of order packets
    5332 DSACKs received
    91 DSACKs for out of order packets received
    210339 connections reset due to unexpected data
    19 connections reset due to early user close
    44 connections aborted due to timeout
    TCPDSACKIgnoredOld: 4113
    TCPDSACKIgnoredNoUndo: 783
    TCPSpuriousRTOs: 2
    TCPSackShifted: 38683
    TCPSackMerged: 76959
    TCPSackShiftFallback: 63628
IpExt:
    InMcastPkts: 4
    InOctets: 3007679753483
    OutOctets: 395066653417
    InMcastOctets: 128

猜你喜欢

转载自wangqiaowqo.iteye.com/blog/2200226