Whenever you feel like letting go,
And you’ve got your back against the wall,
Hold on, hold on, cause you’re undefeatable.
First place, never settle for less,
What’s the point in trying if you ain’t trying your best.
They wanna see me six feet under but I’m watching my steps,
Now everybody watching me like Jay-Z watches the Nets.
Don’t see myself on a skateboard but I stay on my grind,
Aiming for the top and I won’t stop till I cross that finish line.
I see it like the deaf, I listen like the blind,
So if I can’t hear them scheming I still see the signs.
I never count the days I make the days count,
They wanna take my crown so I swim when they wanna see me drown,
Smile when they wanna see me frown, stand up when they wanna see me down.
New and improved attitude you don’t wanna see me now.
They said I cant do it but I did it,
Now they love me all over the world
Cause they say that my style is so prolific.
If I said it I live it, the black Scott diss it.
Fresh haircut and a brand new suit lift up the trophy and kiss it.
Whenever you feel like letting go,
And you’ve got your back against the wall,
Hold on, just hold on.
Cause you’re gonna take a few low blows,
And I know you feel those broken bones.
Just hold on, just hold on
Cause you’re undefeatable.
Tell the paparazzi I’m going in tonight,
And if anybody wanna stop me, you’re gonna need some kryptonite.
I don’t wanna sound impolite, but I been sitting here waiting my turn,
So if you still don’t know what a boy better know better watch and learn.
I let my left foot rest on the side only my right foot’s touching the pedal,
Losing is not an option so I know that I’ve gotta come with something special.
I’m a winner JME on my neck that’s my gold medal,
I was underground now it’s time to take this shit to another level.
I never count the days I make the days count,
They wanna take my crown so I swim when they wanna see me drown,
Smile when they wanna see me frown, stand up when they wanna see me down.
New and improved attitude you don’t wanna see me now.
I got nothing to prove I sit back looking at the game
From a birds eye view then I make my move.
Never take my foot off the gas, I’ma go hard till I blow that fuse,
Cause the moment you feel like giving up that’s the moment you lose.
Whenever you feel like letting go,
And you’ve got your back against the wall,
Hold on, just hold on.
Cause you’re gonna take a few low blows,
And I know you feel those broken bones.
Just hold on, just hold on
Cause you’re undefeatable.
You are undefeatable
Friday, July 20, 2012
Monday, July 9, 2012
Ku Ingin Selamanya
cinta adalah misteri dalam hidupku
yang tak pernah ku tahu akhirnya
namun tak seperti cintaku pada dirimu
yang harus tergenapi dalam kisah hidupku
Reff:
ku ingin slamanya mencintai dirimu
sampai saat ku akan menutup mata dan hidupku
ku ingin slamanya ada di sampingmu
menyayangi dirimu sampai waktu kan memanggilku
ku berharap abadi dalam hidupku
mencintamu bahagia untukku
karena kasihku hanya untuk dirimu
selamanya kan tetap milikmu
di relung sukmaku
ku labuhkan sluruh cintaku
di hembus nafasku
ku abadikan sluruh kasih dan sayangku
yang tak pernah ku tahu akhirnya
namun tak seperti cintaku pada dirimu
yang harus tergenapi dalam kisah hidupku
Reff:
ku ingin slamanya mencintai dirimu
sampai saat ku akan menutup mata dan hidupku
ku ingin slamanya ada di sampingmu
menyayangi dirimu sampai waktu kan memanggilku
ku berharap abadi dalam hidupku
mencintamu bahagia untukku
karena kasihku hanya untuk dirimu
selamanya kan tetap milikmu
di relung sukmaku
ku labuhkan sluruh cintaku
di hembus nafasku
ku abadikan sluruh kasih dan sayangku
Sunday, June 3, 2012
TARIKH LAHIR KERAMAT
Kalau anda dilahirkan pada 1Hb, 10Hb, 19Hb, 28Hb dalam mana-mana bulan, anda adalah no.1
Kalau anda dilahirkan pada 2Hb, 11Hb, 20Hb, 29Hb dalam mana-mana bulan, anda adalah no.2
Kalau anda dilahirkan pada 3Hb, 12Hb, 21Hb, 30Hb dalam mana-mana bulan, anda adalah no.3
Kalau anda dilahirkan pada 4Hb, 13Hb, 22Hb, 31Hb dalam mana-mana bulan, anda adalah no.4
Kalau anda dilahirkan pada 5Hb, 14Hb, 23Hb dalam mana-mana bulan, anda adalah no.5
Kalau anda dilahirkan pada 6Hb, 15Hb, 24Hb dalam mana-mana bulan, anda adalah no.6
Kalau anda dilahirkan pada 7Hb, 16Hb, 25Hb dalam mana-mana bulan, anda adalah no.7
Kalau anda dilahirkan pada 8Hb, 17Hb, 26Hb dalam mana-mana bulan, anda adalah no.8
Kalau anda dilahirkan pada 9Hb, 18Hb, 27Hb dalam mana-mana bulan, anda adalah no.9
no.1
—-
Anda sangat cerdik, jujur, lucu, degil, rajin, terus-terang, cemburu dalam asas pertandingan, baik hati, peramah dan autoriti. Anda ingin mendahului dalam apa jua keadaan. Anda seorang yang berdikari, berkeyakinan dan tidak pernah berada di bawah pimpinan orang lain. Anda akan bercinta dalam usia yang muda tapi akan berkahwin pada usia yang matang. Anda tidak suka akan orang yang bertentangan pendapat dengan anda. Malah anda juga menyimpan dendam dengan orang yang bersalah dengan anda. Anda seorang yang kuat belanja. Pada masa hadapan anda adalah professional dalam kerjaya yang anda ceburi. Namun terdapat juga orang yang kecil hati dengan pencapaian anda. Anda mempunyai keluarga yang bahagia. Pasangan ideal anda adalah no.4, 6, 8.
no.2
—-
Tak kira apa pun, anda akan disukai oleh semua orang kerana anda berperanankan Bulan dan semua orang suka akan bulan. Em…bagus! Anda suka bermimpi siang. Anda kurang berkeyakinan terhadap diri sendiri. Jadi and perlu membuat perubahan ke atas hidup anda. Anda adalah seorang yang sukar diramal kerana anda membuat perubahan berdasarkan masa dan keadaan. Anda juga seorang yang mementingkan diri sendiri tetapi and mempunyai bakat dalam muzikal, seni dan komunikasi lisan. Sikap anda seperti bulan yang datang keredupan dan pudar jadi semua orang boleh mengetahui perubahan anda. Anda boleh menjadi Mahatma Gandhi yang kedua kerana cinta akan keamanan. Anda juga seorang yang bertanggungjawab dalam keluarga. Pasangan ideal anda adalah no.2, 5, 9.
no.3
—-
Anda adalah seorang yang berhati keras, pentingkan diri sendiri, kuat agama dan suka untuk mempertingkatkan kehidupan sendiri. Anda mempunyai masalah keluarga dan anda dapat mengharungi dengan kesabaran anda. Anda sangat pandai bercakap, wajah yang cantik, jadi ke mana saja anda pergi anda akan dapat apa yang anda inginkan. Daripada hari lahir anda, anda perlu berkerja keras untuk berjaya. Anda juga seorang yang menghormati orang yang lebih tua daripada anda. Bukannya senang nak menjalinkan hubungan sama ada percintaan, kekeluargaan atau persahabatan. Sekiranya anda suka akan sikap seseorang itu, maka hubungan itu akan berpanjangan. Anda suka akan kebebasan, pencipta di mana ada anda akan membawa harapan, kegembiraan dan keceriaan ke dunia ini. Pasangan ideal anda adalah no.6, 9.
no.4
—-
Anda adalah seorang yang amat degil dan rajin. Mungkin anda akan menjauhkan orang lain daripada anda kerana kata-kata anda. Anda seorang yang bertimbang rasa akan masalah orang lain. Anda berbakat dalam penyelidikan dan seni. Anda akan membantu ahli keluarga atau kawan-kawan yang menghadapi masalah tanpa berfikir panjang. Anda kena berhati-hati dengan orang sekeliling anda kerana mereka mungkin akan mempergunakan anda. Kawan-kawan anda akan menghabiskan masa dan wang ringgit anda dan selepas itu menjauhi daripada anda apabila anda dah tak ada nilai buat mereka lagi. Walau bagaimanapun anda tetap seorang yang sabar dan tegas. Pasangan ideal anda adalah no.1, 8.
no.5
—-
Anda sangat popular dalam komuniti. Anda boleh menyelesaikan sesuatu perkara hanya secara lisan. Anda mempunyai akal fikiran dalam menjalani perniagaan. Namun anda terlalu terburu-buru. Anda adalah seorang yang humor di kalangan kawan-kawan dan ahli keluarga. Kawan-kawan dan ahli keluarga anda juga akan minta bantuan anda apabila mereka memerlukan bantuan. Anda bukan seorang yang setia dalam hubungan percintaan. Anda suka perubahan dan kebebasan. Anda mempunyai ciri-ciri seorang pengembara dan ahli silap mata. Anda mempelajari hidup melalui pengalaman. Pasangan ideal anda adalah no.1 , 2, 9.
no.6
—-
Anda dilahirkan untuk menikmati hidup ini. Anda tidak pedulikan apa-apa perkara dan hanya ingin berseronok dalam hidup anda saja. Anda sangat pandai dalam pelajaran dan pengurusan perniagaan. Anda seorang genius, baik hati (tapi hanya orang yang beranggapan anda orang baik), mempunyai paras rupa yang cantik atau kacak. Semua benda yang baik akan datang pada anda. Anda mengambil berat ke atas ahli keluarga dan kawan-kawan anda. Pada pandangan mereka, anda adalah seorang yang murah hati, peramah, adil saksama dan mempunyai penilaian yang tajam. Pasangan ideal anda adalah no.1, 3, 9.
no.7
—-
Anda mempunyai daya tarikan kepada sesiapa saja. Anda adalah seorang yang realistik, yakin, gembira dan merupakan seorang yang genius dalam bidang pendidikan, muzik, seni dan nyanyian. Anda mempunyai masalah sikap iaitu panas baran. Namun demikian, anda banyak melakukan pengorbanan untuk keluarga. Anda meletakkan keluarga di tempat yang amat tinggi sekali sehingga kadang-kadang mengabaikan kebahagian diri sendiri. Anda telah dilahirkan untuk memberi sumbangan kepada dunia ini. Jadi anda seorang yang bagus dan seorang yang amat gembira. Pasangan ideal anda adalah no.2.
no.8
—-
Anda mempunyai personaliti yang sangat kuat jadi tak ada orang yang memahami anda. Kepakaran anda hanyalah menuding jari pada sesuatu benda. Anda juga mengalami pelbagai dugaan dalam hidup. Semua masalah ini telah menjadikan anda lebih kuat dan tabah. Anda memperjuangkan keadilan. Kebanyakan masa anda telah dihabiskan bersama-sama dengan kawan-kawan. Anda seorang yang disiplin dalam hidup, tidak putus asa dan berani. Faktor-faktor ini telah membawa anda ke puncak kejayaan. Anda juga adalah seorang ahli pasukan, keluarga dan pejuang yang sangat bagus. Pasangan ideal anda adalah no.1, 4.
no.9
—-
Anda adalah seorang yang sangat tabah dari segi fizikal dan juga mental. Anda mempunyai penilaian yang sangat tajam. Anda juga adalah seorang yang sangat dihormati dalam komuniti. Anda adalah orang yang boleh menerima cabaran dan berjaya dalam apa jua yang anda buat. Pada usia yang muda anda selalu bertentangan dengan ibu bapa anda. Tapi apabila usia anda telah semakin meningkat anda adalah seorang anak yang taat dan hormati mereka. Anda sesuai menceburi bigan kejuruteraan atau perbankan kerana orang lain percaya dan yakin akan anda. Anda merupakan model teladan kepada orang lain. Pasangan ideal anda adalah no. 3, 5, 6.
Kalau anda dilahirkan pada 2Hb, 11Hb, 20Hb, 29Hb dalam mana-mana bulan, anda adalah no.2
Kalau anda dilahirkan pada 3Hb, 12Hb, 21Hb, 30Hb dalam mana-mana bulan, anda adalah no.3
Kalau anda dilahirkan pada 4Hb, 13Hb, 22Hb, 31Hb dalam mana-mana bulan, anda adalah no.4
Kalau anda dilahirkan pada 5Hb, 14Hb, 23Hb dalam mana-mana bulan, anda adalah no.5
Kalau anda dilahirkan pada 6Hb, 15Hb, 24Hb dalam mana-mana bulan, anda adalah no.6
Kalau anda dilahirkan pada 7Hb, 16Hb, 25Hb dalam mana-mana bulan, anda adalah no.7
Kalau anda dilahirkan pada 8Hb, 17Hb, 26Hb dalam mana-mana bulan, anda adalah no.8
Kalau anda dilahirkan pada 9Hb, 18Hb, 27Hb dalam mana-mana bulan, anda adalah no.9
no.1
—-
Anda sangat cerdik, jujur, lucu, degil, rajin, terus-terang, cemburu dalam asas pertandingan, baik hati, peramah dan autoriti. Anda ingin mendahului dalam apa jua keadaan. Anda seorang yang berdikari, berkeyakinan dan tidak pernah berada di bawah pimpinan orang lain. Anda akan bercinta dalam usia yang muda tapi akan berkahwin pada usia yang matang. Anda tidak suka akan orang yang bertentangan pendapat dengan anda. Malah anda juga menyimpan dendam dengan orang yang bersalah dengan anda. Anda seorang yang kuat belanja. Pada masa hadapan anda adalah professional dalam kerjaya yang anda ceburi. Namun terdapat juga orang yang kecil hati dengan pencapaian anda. Anda mempunyai keluarga yang bahagia. Pasangan ideal anda adalah no.4, 6, 8.
no.2
—-
Tak kira apa pun, anda akan disukai oleh semua orang kerana anda berperanankan Bulan dan semua orang suka akan bulan. Em…bagus! Anda suka bermimpi siang. Anda kurang berkeyakinan terhadap diri sendiri. Jadi and perlu membuat perubahan ke atas hidup anda. Anda adalah seorang yang sukar diramal kerana anda membuat perubahan berdasarkan masa dan keadaan. Anda juga seorang yang mementingkan diri sendiri tetapi and mempunyai bakat dalam muzikal, seni dan komunikasi lisan. Sikap anda seperti bulan yang datang keredupan dan pudar jadi semua orang boleh mengetahui perubahan anda. Anda boleh menjadi Mahatma Gandhi yang kedua kerana cinta akan keamanan. Anda juga seorang yang bertanggungjawab dalam keluarga. Pasangan ideal anda adalah no.2, 5, 9.
no.3
—-
Anda adalah seorang yang berhati keras, pentingkan diri sendiri, kuat agama dan suka untuk mempertingkatkan kehidupan sendiri. Anda mempunyai masalah keluarga dan anda dapat mengharungi dengan kesabaran anda. Anda sangat pandai bercakap, wajah yang cantik, jadi ke mana saja anda pergi anda akan dapat apa yang anda inginkan. Daripada hari lahir anda, anda perlu berkerja keras untuk berjaya. Anda juga seorang yang menghormati orang yang lebih tua daripada anda. Bukannya senang nak menjalinkan hubungan sama ada percintaan, kekeluargaan atau persahabatan. Sekiranya anda suka akan sikap seseorang itu, maka hubungan itu akan berpanjangan. Anda suka akan kebebasan, pencipta di mana ada anda akan membawa harapan, kegembiraan dan keceriaan ke dunia ini. Pasangan ideal anda adalah no.6, 9.
no.4
—-
Anda adalah seorang yang amat degil dan rajin. Mungkin anda akan menjauhkan orang lain daripada anda kerana kata-kata anda. Anda seorang yang bertimbang rasa akan masalah orang lain. Anda berbakat dalam penyelidikan dan seni. Anda akan membantu ahli keluarga atau kawan-kawan yang menghadapi masalah tanpa berfikir panjang. Anda kena berhati-hati dengan orang sekeliling anda kerana mereka mungkin akan mempergunakan anda. Kawan-kawan anda akan menghabiskan masa dan wang ringgit anda dan selepas itu menjauhi daripada anda apabila anda dah tak ada nilai buat mereka lagi. Walau bagaimanapun anda tetap seorang yang sabar dan tegas. Pasangan ideal anda adalah no.1, 8.
no.5
—-
Anda sangat popular dalam komuniti. Anda boleh menyelesaikan sesuatu perkara hanya secara lisan. Anda mempunyai akal fikiran dalam menjalani perniagaan. Namun anda terlalu terburu-buru. Anda adalah seorang yang humor di kalangan kawan-kawan dan ahli keluarga. Kawan-kawan dan ahli keluarga anda juga akan minta bantuan anda apabila mereka memerlukan bantuan. Anda bukan seorang yang setia dalam hubungan percintaan. Anda suka perubahan dan kebebasan. Anda mempunyai ciri-ciri seorang pengembara dan ahli silap mata. Anda mempelajari hidup melalui pengalaman. Pasangan ideal anda adalah no.1 , 2, 9.
no.6
—-
Anda dilahirkan untuk menikmati hidup ini. Anda tidak pedulikan apa-apa perkara dan hanya ingin berseronok dalam hidup anda saja. Anda sangat pandai dalam pelajaran dan pengurusan perniagaan. Anda seorang genius, baik hati (tapi hanya orang yang beranggapan anda orang baik), mempunyai paras rupa yang cantik atau kacak. Semua benda yang baik akan datang pada anda. Anda mengambil berat ke atas ahli keluarga dan kawan-kawan anda. Pada pandangan mereka, anda adalah seorang yang murah hati, peramah, adil saksama dan mempunyai penilaian yang tajam. Pasangan ideal anda adalah no.1, 3, 9.
no.7
—-
Anda mempunyai daya tarikan kepada sesiapa saja. Anda adalah seorang yang realistik, yakin, gembira dan merupakan seorang yang genius dalam bidang pendidikan, muzik, seni dan nyanyian. Anda mempunyai masalah sikap iaitu panas baran. Namun demikian, anda banyak melakukan pengorbanan untuk keluarga. Anda meletakkan keluarga di tempat yang amat tinggi sekali sehingga kadang-kadang mengabaikan kebahagian diri sendiri. Anda telah dilahirkan untuk memberi sumbangan kepada dunia ini. Jadi anda seorang yang bagus dan seorang yang amat gembira. Pasangan ideal anda adalah no.2.
no.8
—-
Anda mempunyai personaliti yang sangat kuat jadi tak ada orang yang memahami anda. Kepakaran anda hanyalah menuding jari pada sesuatu benda. Anda juga mengalami pelbagai dugaan dalam hidup. Semua masalah ini telah menjadikan anda lebih kuat dan tabah. Anda memperjuangkan keadilan. Kebanyakan masa anda telah dihabiskan bersama-sama dengan kawan-kawan. Anda seorang yang disiplin dalam hidup, tidak putus asa dan berani. Faktor-faktor ini telah membawa anda ke puncak kejayaan. Anda juga adalah seorang ahli pasukan, keluarga dan pejuang yang sangat bagus. Pasangan ideal anda adalah no.1, 4.
no.9
—-
Anda adalah seorang yang sangat tabah dari segi fizikal dan juga mental. Anda mempunyai penilaian yang sangat tajam. Anda juga adalah seorang yang sangat dihormati dalam komuniti. Anda adalah orang yang boleh menerima cabaran dan berjaya dalam apa jua yang anda buat. Pada usia yang muda anda selalu bertentangan dengan ibu bapa anda. Tapi apabila usia anda telah semakin meningkat anda adalah seorang anak yang taat dan hormati mereka. Anda sesuai menceburi bigan kejuruteraan atau perbankan kerana orang lain percaya dan yakin akan anda. Anda merupakan model teladan kepada orang lain. Pasangan ideal anda adalah no. 3, 5, 6.
Sunday, May 27, 2012
Drive By
On the other side of a street I knew
Stood a girl that looked like you
I guess thats deja vu
But I thought this can't be true
Cause you moved to west L.A or New York or Santa Fe
Or where ever to get away from me
Oh but that one night
Was more than just right
I didn't leave you cause I was all through
Oh I was overwhelmed, and frankly scared as hell
Because I really fell for you
Oh I swear to you
I'll be there for you
This is not a drive by
Just a shy guy looking for a two ply
Hefty bag to hold my love
When you move me everything is groovy
They don't like it sue me
mmm the way you do me
Oh I swear to you
I'll be there for you
This is not a drive by
On the upside of a downward spiral
My love for you went viral
And I loved you every mile you drove away
But now here you are again
So let's skip the "how you been"And
get down to the "more than friends" at last
Oh but that one night
Is still the highlight
I didn't need you until I came to
[ From: http://www.elyrics.net/read/t/train-lyrics/drive-by-lyrics.html ]
and I was overwhelmed, in fact as scared as hell
Because I really fell for you
Oh I swear to you
I'll be there for you
This is not a drive by
Just a shy guy looking for a two ply
Hefty bag to hold my love
When you move me everything is groovy
They don't like it sue me
mmm the way you do me
Oh I swear to you
I'll be there for you
This is not a drive by
Please believe that when I leave
There's nothing up my sleeve but love for you
And a little time to get my head together too
On the other side of a street I knew
Stood a girl that looked like you
I guess thats deja vu
But I thought this can't be true
Cause
Oh I swear to you
I'll be there for you
This is not a drive by
Just a shy guy looking for a two ply
Hefty bag to hold my love
When you move me everything is groovy
They don't like it sue me
mmm the way you do me
Oh I swear to you
I'll be there for you
This is not a drive by
Stood a girl that looked like you
I guess thats deja vu
But I thought this can't be true
Cause you moved to west L.A or New York or Santa Fe
Or where ever to get away from me
Oh but that one night
Was more than just right
I didn't leave you cause I was all through
Oh I was overwhelmed, and frankly scared as hell
Because I really fell for you
Oh I swear to you
I'll be there for you
This is not a drive by
Just a shy guy looking for a two ply
Hefty bag to hold my love
When you move me everything is groovy
They don't like it sue me
mmm the way you do me
Oh I swear to you
I'll be there for you
This is not a drive by
On the upside of a downward spiral
My love for you went viral
And I loved you every mile you drove away
But now here you are again
So let's skip the "how you been"And
get down to the "more than friends" at last
Oh but that one night
Is still the highlight
I didn't need you until I came to
[ From: http://www.elyrics.net/read/t/train-lyrics/drive-by-lyrics.html ]
and I was overwhelmed, in fact as scared as hell
Because I really fell for you
Oh I swear to you
I'll be there for you
This is not a drive by
Just a shy guy looking for a two ply
Hefty bag to hold my love
When you move me everything is groovy
They don't like it sue me
mmm the way you do me
Oh I swear to you
I'll be there for you
This is not a drive by
Please believe that when I leave
There's nothing up my sleeve but love for you
And a little time to get my head together too
On the other side of a street I knew
Stood a girl that looked like you
I guess thats deja vu
But I thought this can't be true
Cause
Oh I swear to you
I'll be there for you
This is not a drive by
Just a shy guy looking for a two ply
Hefty bag to hold my love
When you move me everything is groovy
They don't like it sue me
mmm the way you do me
Oh I swear to you
I'll be there for you
This is not a drive by
Wednesday, May 9, 2012
TIME_WAIT in netstat
So, ever wonder what all those TIME_WAITs are doing in your netstat listing?
Okay, for those of you who don't spend all your waking hours fooling around with Web servers, let me back up a little and explain what that sentence meant.
Netstat is a little utility that many administrators use to monitor the network connections on their servers. It is quite useful for tracking down that small subset of performance bottlenecks that aren't attributable to yet another piece of convoluted application code that some careless programmer wrote and now you have to take care of. But I digress.
When you run netstat on your busy IIS box, you might get something that looks like this:
C:\>netstat -np tcp
Active Connections
Proto Local Address Foreign Address State
TCP 192.168.0.1:80 192.168.0.12:1217 ESTABLISHED
TCP 192.168.0.1:80 192.168.0.5:1218 TIME_WAIT
TCP 192.168.0.1:80 192.168.0.234:1252 TIME_WAIT
TCP 192.168.0.1:80 192.168.0.37:1267 ESTABLISHED
TCP 192.168.0.1:80 192.168.0.23:1298 TIME_WAIT
TCP 192.168.0.1:80 192.168.0.32:1345 TIME_WAIT
And so on and on, for many, many lines. Each line here represents a connection between a TCP socket your server and a matching one on some other machine--usually an HTTP client such as a browser or proxy server, but depending on your architecture you might also see connections to other kinds of servers (database, application, directory, etc.). Each connection has a unique combination of IP addresses and port numbers that identify the endpoints to which the sockets are bound. More to the point, each one also has a state indicator. As connections are set up used and torn down, they pass through a variety of these states, most of which aren't shown here, because they come and go quite quickly).
The connections in the ESTABLISHED state are, well, established--they are neither being set up nor torn down but just used. This is what you will often see the most of. But what about the others? On a busy HTTP server, the number of sockets in this TIME_WAIT state can far exceed those in the ESTABLISHED state. For instance, I checked an IIS 6.0 box that serves a fairly busy corporate site earlier today and got 124 ESTABLISHED connections versus 431 in TIME_WAIT.
What does this all mean? More importantly, is it something you should be worried about?
The answers are:
1. It's complicated.
2. Maybe.
To understand what all those TIME_WAITs are doing there, it's useful to review (or learn) a little TCP. I'll wait here while you brush up on RFC793.
That was fast. Just kidding. The bit you need to know is so simple, even I can explain it.
As you know, TCP provides a reliable connection between two endpoints, across which data can be sent in segmented form. As part of this, TCP also provides a mechanism for gracefully shutting down such connections. This is accomplished with a full duplex handshake, which can be diagrammed like so:
Server Client
-------------- FIN -------------->
<------------- ACK ---------------
<------------- FIN ---------------
-------------- ACK ------------->
As you can see by this very sophisticated diagram, a graceful shutdown requires the two endpoints to exchange some TCP/IP packets with the FIN and ACK bits set, in a certain sequence. This exchange of packets in turn corresponds to certain state changes on each side of the connection. In the diagram, I've labeled the two sides "Server" and "Client" such that the sequence of events mirrors what usually happens when connections are closed by HTTP.
Here is what happens, step-by-step:
1. First the application at one endpoint--in this example, that would be the Web server--initiates what is called an "active close." The Web server itself is now done with the connection, but the TCP implementation that supplied the socket it was using still has some work to do. It sends a FIN to the other endpoint and goes into a state called FIN_WAIT_1.
2. Next the TCP endpoint on the browser's side of the connection acknowledges the server's FIN by sending back an ACK, and goes into a state called CLOSE_WAIT. When the server side receives this ACK, it switches to a state called FIN_WAIT_2. The connection is now half-closed.
3. At this point, the socket on the client side is in a "passive close," meaning it waits for the application that was using it (the browser) to close. When this happens, the client sends its own FIN to the server, and deallocates the socket on the client side. It's done.
4. When the server gets that last FIN, it of course sends back on ACK to acknowledge it, and then goes into the infamous TIME_WAIT state. For how long? Ah, there's the rub.
The socket that initiated the close is supposed to stay in this state for twice the Maximum Segment Lifetime--2MLS in geek speak. The MLS is supposed to be the length of time a TCP segment can stay alive in the network. So, 2MLS makes sure that any segments still out there when the close starts have time to arrive and be discarded. Why bother with this, you ask?
Because of delayed duplicates, that's why. Given the nature of TCP/IP, it's possible that, after an active close has commenced, there are still duplicate packets running around, trying desperately to make their way to their destination sockets. If a new socket binds to the same IP/port combination before these old packets have had time to get flushed out of the network, old and new data could become intermixed. Imagine the havoc this could cause around the office: "You got JavaScript in my JPEG!"
So, TIME_WAIT was invented to keep new connections from being haunted by the ghosts of connections past. That seems like a good thing. So what's the problem?
The problem is that 2MLS happens to be a rather long time--240 seconds, by default. There are several costs associated with this. The state for each socket is maintained in a data structure called a TCP Control Block (TCB). When IP packets come in they have to be associated with the right TCB and the more TCBs there are, the longer that search takes. Modern implementations of TCP combat this by using a hash table instead of a linear search. Also, since each TIME_WAIT ties up an IP/port combination, too many of them can lead to exhaustion of the default number of ephemeral ports available for handling new requests. And even if the TCB search is relatively fast, and even if there are plenty of ports to bind to, the extra TCBs still take up memory on the server side. In short, the need to limit the costs of TIME_WAIT turns out to be a long-standing problem. In fact, this was part of the original case for persistent connections in HTTP 1.1.
The good news is that you can address this problem by shortening the TIME_WAIT interval. This article by Brett Hill explains how to do so for IIS. As Brett explains, four minutes is probably longer than needed for duplicate packets to flush out of the network, given that modern network latencies tend to be much shorter than that. The bad news is that, while shortening the interval is quite common, it still entails risks. As Faber, Touch and Yue (who are the real experts on this) explain: "The size of the MSL to maintain a given memory usage level is inversely proportional to the connection rate." In other words, the more you find yourself needing to reduce the length of TIME_WAIT, the more likely doing so will cause problems.
Okay, for those of you who don't spend all your waking hours fooling around with Web servers, let me back up a little and explain what that sentence meant.
Netstat is a little utility that many administrators use to monitor the network connections on their servers. It is quite useful for tracking down that small subset of performance bottlenecks that aren't attributable to yet another piece of convoluted application code that some careless programmer wrote and now you have to take care of. But I digress.
When you run netstat on your busy IIS box, you might get something that looks like this:
C:\>netstat -np tcp
Active Connections
Proto Local Address Foreign Address State
TCP 192.168.0.1:80 192.168.0.12:1217 ESTABLISHED
TCP 192.168.0.1:80 192.168.0.5:1218 TIME_WAIT
TCP 192.168.0.1:80 192.168.0.234:1252 TIME_WAIT
TCP 192.168.0.1:80 192.168.0.37:1267 ESTABLISHED
TCP 192.168.0.1:80 192.168.0.23:1298 TIME_WAIT
TCP 192.168.0.1:80 192.168.0.32:1345 TIME_WAIT
And so on and on, for many, many lines. Each line here represents a connection between a TCP socket your server and a matching one on some other machine--usually an HTTP client such as a browser or proxy server, but depending on your architecture you might also see connections to other kinds of servers (database, application, directory, etc.). Each connection has a unique combination of IP addresses and port numbers that identify the endpoints to which the sockets are bound. More to the point, each one also has a state indicator. As connections are set up used and torn down, they pass through a variety of these states, most of which aren't shown here, because they come and go quite quickly).
The connections in the ESTABLISHED state are, well, established--they are neither being set up nor torn down but just used. This is what you will often see the most of. But what about the others? On a busy HTTP server, the number of sockets in this TIME_WAIT state can far exceed those in the ESTABLISHED state. For instance, I checked an IIS 6.0 box that serves a fairly busy corporate site earlier today and got 124 ESTABLISHED connections versus 431 in TIME_WAIT.
What does this all mean? More importantly, is it something you should be worried about?
The answers are:
1. It's complicated.
2. Maybe.
To understand what all those TIME_WAITs are doing there, it's useful to review (or learn) a little TCP. I'll wait here while you brush up on RFC793.
That was fast. Just kidding. The bit you need to know is so simple, even I can explain it.
As you know, TCP provides a reliable connection between two endpoints, across which data can be sent in segmented form. As part of this, TCP also provides a mechanism for gracefully shutting down such connections. This is accomplished with a full duplex handshake, which can be diagrammed like so:
Server Client
-------------- FIN -------------->
<------------- ACK ---------------
<------------- FIN ---------------
-------------- ACK ------------->
As you can see by this very sophisticated diagram, a graceful shutdown requires the two endpoints to exchange some TCP/IP packets with the FIN and ACK bits set, in a certain sequence. This exchange of packets in turn corresponds to certain state changes on each side of the connection. In the diagram, I've labeled the two sides "Server" and "Client" such that the sequence of events mirrors what usually happens when connections are closed by HTTP.
Here is what happens, step-by-step:
1. First the application at one endpoint--in this example, that would be the Web server--initiates what is called an "active close." The Web server itself is now done with the connection, but the TCP implementation that supplied the socket it was using still has some work to do. It sends a FIN to the other endpoint and goes into a state called FIN_WAIT_1.
2. Next the TCP endpoint on the browser's side of the connection acknowledges the server's FIN by sending back an ACK, and goes into a state called CLOSE_WAIT. When the server side receives this ACK, it switches to a state called FIN_WAIT_2. The connection is now half-closed.
3. At this point, the socket on the client side is in a "passive close," meaning it waits for the application that was using it (the browser) to close. When this happens, the client sends its own FIN to the server, and deallocates the socket on the client side. It's done.
4. When the server gets that last FIN, it of course sends back on ACK to acknowledge it, and then goes into the infamous TIME_WAIT state. For how long? Ah, there's the rub.
The socket that initiated the close is supposed to stay in this state for twice the Maximum Segment Lifetime--2MLS in geek speak. The MLS is supposed to be the length of time a TCP segment can stay alive in the network. So, 2MLS makes sure that any segments still out there when the close starts have time to arrive and be discarded. Why bother with this, you ask?
Because of delayed duplicates, that's why. Given the nature of TCP/IP, it's possible that, after an active close has commenced, there are still duplicate packets running around, trying desperately to make their way to their destination sockets. If a new socket binds to the same IP/port combination before these old packets have had time to get flushed out of the network, old and new data could become intermixed. Imagine the havoc this could cause around the office: "You got JavaScript in my JPEG!"
So, TIME_WAIT was invented to keep new connections from being haunted by the ghosts of connections past. That seems like a good thing. So what's the problem?
The problem is that 2MLS happens to be a rather long time--240 seconds, by default. There are several costs associated with this. The state for each socket is maintained in a data structure called a TCP Control Block (TCB). When IP packets come in they have to be associated with the right TCB and the more TCBs there are, the longer that search takes. Modern implementations of TCP combat this by using a hash table instead of a linear search. Also, since each TIME_WAIT ties up an IP/port combination, too many of them can lead to exhaustion of the default number of ephemeral ports available for handling new requests. And even if the TCB search is relatively fast, and even if there are plenty of ports to bind to, the extra TCBs still take up memory on the server side. In short, the need to limit the costs of TIME_WAIT turns out to be a long-standing problem. In fact, this was part of the original case for persistent connections in HTTP 1.1.
The good news is that you can address this problem by shortening the TIME_WAIT interval. This article by Brett Hill explains how to do so for IIS. As Brett explains, four minutes is probably longer than needed for duplicate packets to flush out of the network, given that modern network latencies tend to be much shorter than that. The bad news is that, while shortening the interval is quite common, it still entails risks. As Faber, Touch and Yue (who are the real experts on this) explain: "The size of the MSL to maintain a given memory usage level is inversely proportional to the connection rate." In other words, the more you find yourself needing to reduce the length of TIME_WAIT, the more likely doing so will cause problems.
Hey There Delilah
Hey there Delilah
What's it like in New York City?
I'm a thousand miles away
But girl, tonight you look so pretty
Yes you do
Times Square can't shine as bright as you
I swear it's true
Hey there Delilah
Don't you worry about the distance
I'm right there if you get lonely
Give this song another listen
Close your eyes
Listen to my voice, it's my disguise
I'm by your side
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
What you do to me
Hey there Delilah
I know times are getting hard
But just believe me, girl
Someday I'll pay the bills with this guitar
We'll have it good
We'll have the life we knew we would
My word is good
Hey there Delilah
I've got so much left to say
If every simple song I wrote to you
Would take your breath away
I'd write it all
Even more in love with me you'd fall
We'd have it all
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
A thousand miles seems pretty far
But they've got planes and trains and cars
I'd walk to you if I had no other way
Our friends would all make fun of us
and we'll just laugh along because we know
That none of them have felt this way
Delilah I can promise you
That by the time we get through
The world will never ever be the same
And you're to blame
Hey there Delilah
You be good and don't you miss me
Two more years and you'll be done with school
And I'll be making history like I do
You'll know it's all because of you
We can do whatever we want to
Hey there Delilah here's to you
This one's for you
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
What you do to me.
What's it like in New York City?
I'm a thousand miles away
But girl, tonight you look so pretty
Yes you do
Times Square can't shine as bright as you
I swear it's true
Hey there Delilah
Don't you worry about the distance
I'm right there if you get lonely
Give this song another listen
Close your eyes
Listen to my voice, it's my disguise
I'm by your side
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
What you do to me
Hey there Delilah
I know times are getting hard
But just believe me, girl
Someday I'll pay the bills with this guitar
We'll have it good
We'll have the life we knew we would
My word is good
Hey there Delilah
I've got so much left to say
If every simple song I wrote to you
Would take your breath away
I'd write it all
Even more in love with me you'd fall
We'd have it all
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
A thousand miles seems pretty far
But they've got planes and trains and cars
I'd walk to you if I had no other way
Our friends would all make fun of us
and we'll just laugh along because we know
That none of them have felt this way
Delilah I can promise you
That by the time we get through
The world will never ever be the same
And you're to blame
Hey there Delilah
You be good and don't you miss me
Two more years and you'll be done with school
And I'll be making history like I do
You'll know it's all because of you
We can do whatever we want to
Hey there Delilah here's to you
This one's for you
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
Oh it's what you do to me
What you do to me.
Subscribe to:
Posts (Atom)