-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
548 lines (310 loc) · 24.8 KB
/
index.html
File metadata and controls
548 lines (310 loc) · 24.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>流浪剑客</title>
<meta name="author" content="Sven Lu">
<meta name="description" content="通过/proc/sys/net/ipv4优化Linux下网络性能 /proc/sys/net/ipv4参数解析 1./proc/sys/net/ipv4/ip_forward 该文件表示是否打开IP转发
0.禁止
1.转发
缺省设置:0 2./proc/sys/net/ipv4/ …">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link href="/atom.xml" rel="alternate" title="流浪剑客" type="application/atom+xml">
<link rel="canonical" href="">
<link href="/favicon.png" rel="shortcut icon">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<script async="true" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<header id="header" class="inner"><h1><a href="/">流浪剑客</a></h1>
<nav id="main-nav"><ul class="main">
<li><a href="/">Blog</a></li>
<li><a href="/blog/archives">Archives</a></li>
</ul>
</nav>
<nav id="mobile-nav">
<div class="alignleft menu">
<a class="button">Menu</a>
<div class="container"><ul class="main">
<li><a href="/">Blog</a></li>
<li><a href="/blog/archives">Archives</a></li>
</ul>
</div>
</div>
<div class="alignright search">
<a class="button"></a>
<div class="container">
<form action="http://google.com/search" method="get">
<input type="text" name="q" results="0">
<input type="hidden" name="q" value="site:svenlu.github.io">
</form>
</div>
</div>
</nav>
<nav id="sub-nav" class="alignright">
<div class="social">
<a class="rss" href="/atom.xml" title="RSS">RSS</a>
</div>
<form class="search" action="http://google.com/search" method="get">
<input class="alignright" type="text" name="q" results="0">
<input type="hidden" name="q" value="site:svenlu.github.io">
</form>
</nav>
</header>
<div id="content" class="inner">
<article class="post">
<h2 class="title">
<a href="/blog/2014/07/30/slash-proc-slash-sys-slash-net-slash-ipv4xiang-jie/">
/proc/sys/net/ipv4详解</a>
</h2>
<div class="entry-content">
<h2>通过/proc/sys/net/ipv4优化Linux下网络性能</h2>
<h3>/proc/sys/net/ipv4参数解析</h3>
<h4>1./proc/sys/net/ipv4/ip_forward</h4>
<blockquote><p>该文件表示是否打开IP转发
0.禁止
1.转发
缺省设置:0</p></blockquote>
<h4>2./proc/sys/net/ipv4/ip_default_ttl</h4>
<blockquote><p>该文件表示数据报的生存周期(Time To Live),即最多经过多少路由器。
缺省设置:64
增加该值会降低系统的性能。</p></blockquote>
<h4>3./proc/sys/net/ipv4/ip_no_pmtu_disc</h4>
<blockquote><p>该文件表示在全局范围内关闭路径MTU探测功能。
缺省设置:0</p></blockquote>
<h4>4./proc/sys/net/ipv4/route/min_pmtu</h4>
<blockquote><p>该文件表示最小路径MTU的大小。
缺省设置:552</p></blockquote>
<h4>5./proc/sys/net/ipv4/route/mtu_expires</h4>
<blockquote><p>该文件表示PMTU信息缓存多长时间(秒)
缺省设置:600(秒)</p></blockquote>
<h4>6./proc/sys/net/ipv4/route/min_adv_mss</h4>
<blockquote><p>该文件表示最小的MSS(Maximum Segment Size)大小,取决于第一跳得路由器MTU。
缺省设置:256(bytes)</p></blockquote>
<h3>IP Fragmentation</h3>
<h4>1./proc/sys/net/ipv4/ipfrag_low_thresh</h4>
<blockquote><p>/proc/sys/net/ipv4/ipfrag_low_thresh 两个文件分别表示用于重组IP分段的内存分配最低值和最高值,一旦达到最高内存分配值,其他分段将被丢弃,直到达到最低内存分配值。
缺省设置:196608(ipfrag_low_thresh)262144(ipfrage_high_thresh)</p></blockquote>
<h4>2./proc/sys/net/ipv4/ipfrag_time</h4>
<blockquote><p>该文件表示一个IP分段在内存中保留多少秒
缺省设置:30(秒)</p></blockquote>
<h3>INET Peer Storage</h3>
<h4>1./proc/sys/net/ipv4/inet_peer_threshold</h4>
<blockquote><p>INET 对端存储器某个合适值,当超过该阀值条目将被丢弃。该阀值同样决定生存时间以及废物收集通过的时间间隔。条目越多,存活期越低,GC间隔越短。
缺省设置:65664</p></blockquote>
<h4>2./proc/sys/net/ipv4/inet_peer_minttl</h4>
<blockquote><p>条目的最低存活期。在重组端必须要有足够的碎片(fragment)存活期。这个最低存活期必须保证缓冲池容积是否少于inet_peer_threshold。该值以jiffies为单位测量。
缺省设置:120</p></blockquote>
<h4>3./proc/sys/net/ipv4/inet_peer_maxttl</h4>
<blockquote><p>条目的最大存活期。在此期限达到之后,如果缓冲池没有耗尽压力的话(例如:缓冲池的条目数非常少),不使用的条目将会超时。该值以jiffies为单位测量。
缺省设置:600</p></blockquote>
<h4>4./proc/sys/net/ipv4/inet_peer_gc_mintime</h4>
<blockquote><p>废物收集(GC)通过的最短间隔,这个间隔会影响到缓冲池中内存的低压力。该值以jiffies为单位测量。
缺省设置:10</p></blockquote>
<h4>5./proc/sys/net/ipv4/inet_peer_gc_maxtime</h4>
<blockquote><p>废物收集(GC)通过的最大间隔,这个间隔会影响到缓冲池中内存的低压力。该值以jiffies为单位测量
缺省设置:120</p></blockquote>
<h3>TCP Variables</h3>
<h4>1./proc/sys/net/ipv4/tcp_syn_retries</h4>
<blockquote><p>该文件表示本机向外发起TCP SYN 连接超时重传的次数,不应该高于255;该值仅仅针对外出的连接,对于进来的连接由tcp_retries 1控制
缺省设置:5</p></blockquote>
<h4>2./proc/sys/net/ipv4/tcp_keepalive_probes</h4>
<blockquote><p>该文件丢弃TCP连接前,进行最大TCP保持连接侦测的次数。保持连接仅在SO_KEEPALIVE套接字选项被打开时才被发送。
缺省设置:9(次)</p></blockquote>
<h4>3./proc/sys/net/ipv4/tcp_keepalive_time</h4>
<blockquote><p>该文件表示从不再传送数据到向连接上发送保持连接信号之间所需的秒数。
缺省设置:7200(2小时)</p></blockquote>
<h4>4./proc/sys/net/ipv4/tcp_keepalive_intvl</h4>
<blockquote><p>该文件表示发送TCP探测的频率,乘以tcp_keepalive_probes表示断开没有相应地TCP连接的时间。
缺省设置:75(秒)</p></blockquote>
<h4>5./proc/sys/net/ipv4/tcp_retries1</h4>
<blockquote><p>该文件表示放弃回应一个TCP连接请求前进行重传次数。
缺省设置:3</p></blockquote>
<h4>6./proc/sys/net/ipv4/tcp_retries2</h4>
<blockquote><p>该文件表示放弃在已经建立通讯状态下地一个TCP数据包前进行重传次数。
缺省设置:15</p></blockquote>
<h4>7./proc/sys/net/ipv4/tcp_orphan_retries</h4>
<blockquote><p>在近端丢弃TCP连接之前,要进行多少次重试。默认值是7个,相当于50秒-16分钟,视RTO而定。如果您的系统是负载很大的web服务器,那么也许需要降低该值,这类sockets可能会耗费大量的资源。另外参考tcp_max_orphans.</p></blockquote>
<h4>8./proc/sys/net/ipv4/tcp_fin_timeout</h4>
<blockquote><p>对于本端断开的socket连接,TCP保持在FIN_WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。默认值为60秒。过去在2.2版本的内核中是180秒。您可以设置该值,但需要注意,如果您的机器为腹中很重的web服务器,您可能要冒内存被大量无线数据报填满的风险,FIN-WAIT-2 sockets的危险性低于FIN-WAIT-1,因为他们最多只吃1.5k的内存,但是他们存在时间更长。另外参考tcp_max_orphans
缺省设置:60(秒)</p></blockquote>
<h4>9./proc/sys/net/ipv4/tcp_max_tw_buckets</h4>
<blockquote><p>系统在同时所处理的最大timewait sockets数目。如果超过此数得话,time-wait sockets会被立即砍出并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单地Dos攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)。
缺省设置:180000</p></blockquote>
<h4>10./proc/sys/net/ipv4/tcp_tw_recyle</h4>
<blockquote><p>打开快速TIME-WAIT sockets 回收。除非得到技术专家的建议或要求,请不要随意修改这个值。
缺省设置:0</p></blockquote>
<h4>11./proc/sys/net/ipv4/tcp_tw_reuse</h4>
<blockquote><p>该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。
缺省设置:0</p></blockquote>
<h4>12./proc/sys/net/ipv4/tcp_max_orphans</h4>
<blockquote><p>系统所能处理不属于任何进程的TCP sockets 最大数量。假如超过这个数量,那么不属于任何进程的连接会被立即reset,并同时显示警告信息,之所以要设定这个限制,纯粹为了抵御那些简单地Dos攻击,千万不要依赖这个或是人为的降低这个限制。
缺省设置:8192</p></blockquote>
<h4>13./proc/sys/net/ipv4/tcp_abort_on_overflow</h4>
<blockquote><p>当守护进程太忙而不能接受新的连接,就向对方发送rest消息,默认值是false。这意味着当溢出的原因是因为一个偶然的触发,那么连接将恢复状态。只有在你确信守护进程真的不能完成连接请求时才打开该选项,该选项会影响用户的使用。
缺省设置:0</p></blockquote>
<h4>14./proc/sys/net/ipv4/tcp_syncookies</h4>
<blockquote><p>该文件表示是否打开TCP同步标签(syncookie),内核必须打开了CONFIG_SYN_COOKIES项进行编译。同步标签(syncookie)可以防止一个套接字在有过多试图连接到达时引起过载。
缺省设置:0</p></blockquote>
<h4>15./proc/sys/net/ipv4/tcp_stdurg</h4>
<blockquote><p>使用TCP urg pointer 字段中主机请求解释功能。大部分的主机都使用老旧的BSD解释,因此如果您在Linux打开它,或会导致不能和它们正确沟通。
缺省设置:0</p></blockquote>
<h4>16./proc/sys/net/ipv4/tcp_max_syn_backlog</h4>
<blockquote><p>对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。对于超过128Mb内存系统,默认值是1024,低于128Mb的则为128。如果服务器经常出现过载,可以尝试增加这个数字。警告!假如您将此值设置大于1024,最好修改include/net/tcp.h里面的TCP_SYNQ_HSIZE,以保持TCP_SYNQ_HSIZE*16 0)或者btes-bytes/2<sup>-tcp_adv_win_scale</sup>(如果 tcp_adv_win_scale 128Mb 32768-610000)则系统将忽 略所有发送给自己的 ICMP ECHO 请求或那些广播地址的请求。
缺省设置:1024</p></blockquote>
<h4>17./proc/sys/net/ipv4/tcp_window_scaling</h4>
<blockquote><p>该文件表示设置tcp/ip会话的华东窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip通常使用的窗口最大可达65535字节,对于高速网络,该值可能太小,这时候如果启动该功能,可以使得tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力
缺省设置:1</p></blockquote>
<h4>18./proc/sys/net/ipv4/tcp_sack</h4>
<blockquote><p>该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来书)这个特选项应该启用,但是会增加对CPU的占用。
缺省设置:1</p></blockquote>
<h4>19./proc/sys/net/ipv4/tcp_timestamps</h4>
<blockquote><p>该文件表示是否启用以一种比超时重发更精确的方法(请参阅RFC 1323)来启用对RTT的计算;为了实现更好的性能应该启用这个选项。
缺省设置:1</p></blockquote>
<h4>20./proc/sys/net/ipv4/tcp_fack</h4>
<blockquote><p>该文件表示是否打开FACk拥塞避免和快速重传功能。
缺省设置:1</p></blockquote>
<h4>21./proc/sys/net/ipv4/tcp_dsack</h4>
<blockquote><p>该文件表示是否允许 TCP 发送“两个完全相同”的 SACK。
缺省设置:1</p></blockquote>
<h4>22./proc/sys/net/ipv4/tcp_ecn</h4>
<blockquote><p>该文件表示是否打开 TCP 的直接拥塞通告功能。
缺省设置:0</p></blockquote>
<h4>23./proc/sys/net/ipv4/tcp_reordering</h4>
<blockquote><p>该文件表示 TCP 流中重排序的数据报最大数量。
缺省设置:3</p></blockquote>
<h4>24./proc/sys/net/ipv4/tcp_retrans_collapse</h4>
<blockquote><p>该文件表示对于某些有bug的打印机是否提供针对其bug的兼容性。
缺省设置:1</p></blockquote>
<h4>25./proc/sys/net/ipv4/tcp_wmem</h4>
<blockquote><p>该文件包含3个整数值,分别是:min,default,maxMin:为TCP socket预留用于发送缓冲的内存最小值。每个TCP socket都可以使用它。Default:为TCP socket预留于发送缓冲的内存数量,默认情况下该值会影响其它协议使 用的net.core.wmem中default的值,一般要低于net.core.wmem中default的值。Max:为TCP socket预留用于发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K。缺省设置:4096 16384 131072</p></blockquote>
<h4>26./proc/sys/net/ipv4/tcp_rmem</h4>
<blockquote><p>该文件包含3个整数值,分别是:min,default,maxMin:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP socket都至少会有这么多数量的内存用于接收缓冲。Default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的net.core.wmem中default的值。该值决定了在 tcp_adv_win_scale、tcp_app_win 和 tcp_app_win的默认值情况下,TCP窗口大小为 65535。Max:为TCP socket 预留用于接收缓冲的内存最大值。该值不会影响net.core.wmem中max的值,今天选择参数 SO_SNDBUF则不受该值影响。缺省设置:4096 87380 174760</p></blockquote>
<h4>27./proc/sys/net/ipv4/tcp_mem</h4>
<blockquote><p>该文件包含3个整数值,分别是:low,pressure,highLow:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。Pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。High:允许所有tcp sockets用于排队缓冲数据报的页面量。一般情况下这些值是在系统启动时根据系统内存数量计算得到的。缺省设置:24576 32768 49152</p></blockquote>
<h4>28./proc/sys/net/ipv4/tcp_app_win</h4>
<blockquote><p>该文件表示保留max(window/2<sup>tcp</sup>_app_win,mss)数量的窗口由于应用缓冲。当为0时表示不需要缓冲。缺省设置:31</p></blockquote>
<h4>29./proc/sys/net/ipv4/tcp_adv_win_scale</h4>
<blockquote><p>该文件表示计算缓冲开销 bytes/2<sup>tcp</sup>_adv_win_scale(如果 tcp_adv_win_scale >;0)或者bytes-bytes/2<sup>-tcp_adv_win_scale</sup>(如果tcp_adv_win_scale)。缺省设置:2</p></blockquote>
<h3>IP Variables</h3>
<h4>1./proc/sys/net/ipv4/ip_local_port_range</h4>
<blockquote><p>该文件表示TCP/UDP协议打开的本地端口号。缺省设置:1024 4999建议设置:32768 61000</p></blockquote>
<h4>2./proc/sys/net/ipv4/ip_nonlocal_bind</h4>
<blockquote><p>该文件表示是否允许进程邦定到非本地地址。缺省设置:0</p></blockquote>
<h4>3./proc/sys/net/ipv4/ip_dynaddr</h4>
<blockquote><p>该参数通常用于使用拨号连接的情况,可以使系统动能够立即改变ip包的源地址 为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该文件表示是否允许动态地址,如果该值非0,表示允许;如果该值大于1,内核将通过log记录动态地址重写信息。缺省设置:0</p></blockquote>
<h4>4./proc/sys/net/ipv4/icmp_echo_ignore_all</h4>
<blockquote><p>/proc/sys/net/i pv4/icmp_echo_i gnore_broadcasts该文件表示内核是否忽略所有的ICMPECHO请求,或忽略广播和多播请求。
0,响应请求1,忽略请求
缺省设置:0建议设置:1</p></blockquote>
<h4>5./proc/sys/net/ipv4/icmp_ratelimit</h4>
<h4>6./proc/sys/net/i pv4/i cmp_ratemask</h4>
<h4>7./proc/sys/net/ipv4/icmp_ignore_bogus_error_reponses</h4>
<blockquote><p>某些路由器违背 RFC1122 标准,其对广播帧发送伪造的响应来应答。这种违背行为通常会被以告警的方式记录在系统日志中。如果该选项设置为True,内核不会记录这种警告信息。缺省设置:0</p></blockquote>
<h4>8./proc/sys/net/ipv4/igmp_max_memberships</h4>
<blockquote><p>该文件表示多播组中的最大成员数量。缺省设置:20</p></blockquote>
<h3>Other Configuration</h3>
<h4>1./proc/sys/net/ipv4/conf/*/accept_redirects</h4>
<blockquote><p>如果主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网 关在收到你的ip包时发现该ip包必须经过另外一个路由器,这时这个路由器就会给你发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔值,1 表示接收这类重定向icmp信息,0表示忽略。在充当路由器的linux主机上缺省值为0,在一般的linux主机上缺省值为1。建议将其改为0以消除安全性隐患。</p></blockquote>
<h4>2./proc/sys/net/i pv4/*/accept_source_route</h4>
<blockquote><p>是否接受含有源路由信息的ip包。参数值为布尔值,1表示接受,0表示不接受。在充当网关的linux主机上缺省值为1,在一般的 linux 主机上缺省值为0。从安全性角度出发,建议关闭该功能。</p></blockquote>
<h4>3./proc/sys/net/i pv4/*/secure_redi rects</h4>
<blockquote><p>其实所谓的“安全重定向”就是只接受来自网关的“重定向”icmp包。该参数就是用来设置“安全重定向”功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值为启用。####4./proc/sys/net/i pv4/*/proxy_arp</p>
<p>设置是否对网络上的arp包进行中继。参数值为布尔值,1 表示中继,0 表示忽略, 缺省值为 0。该参数通常只对充当路由器的linux主机有用。</p></blockquote>
</div>
<div class="meta">
<div class="date">
<time datetime="2014-07-30T22:54:00+08:00" pubdate data-updated="true">Jul 30<span>th</span>, 2014</time></div>
<div class="tags">
<a class='category' href='/blog/categories/linux/'>Linux</a>
</div>
<div class="comments"><a href="/blog/2014/07/30/slash-proc-slash-sys-slash-net-slash-ipv4xiang-jie/#disqus_thread">Comments</a></div>
</div>
</article>
<article class="post">
<h2 class="title">
<a href="/blog/2014/07/21/gao-fu-zai-xi-tong-%2Cwang-luo-can-shu-diao-zheng/">
高负载系统,网络参数调整</a>
</h2>
<div class="entry-content">
<p>调整/etc/sysctl.conf</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>vim /etc/sysctl.conf
</span></code></pre></td></tr></table></div></figure>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 1. net.ipv4.tcp_syncookies <span class="o">=</span> 1
</span></code></pre></td></tr></table></div></figure>
<p>表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 2. net.ipv4.tcp_tw_reuse <span class="o">=</span> 1
</span></code></pre></td></tr></table></div></figure>
<p>表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 3. net.ipv4.tcp_tw_recycle <span class="o">=</span> 1
</span></code></pre></td></tr></table></div></figure>
<p>表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 4. net.ipv4.tcp_fin_timeout <span class="o">=</span> 30
</span></code></pre></td></tr></table></div></figure>
<p></p>
<p>表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 5. net.ipv4.tcp_keepalive_time <span class="o">=</span> 1200
</span></code></pre></td></tr></table></div></figure>
<p>表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 6. net.ipv4.ip_local_port_range <span class="o">=</span> 1024 65000
</span></code></pre></td></tr></table></div></figure>
<p>表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 7. net.ipv4.tcp_max_syn_backlog <span class="o">=</span> 8192
</span></code></pre></td></tr></table></div></figure>
<p>表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。</p>
<p>如果高负载系统使用了netfilter/iptables,调整以下参数</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 8. net.ipv4.ip_conntrack_max <span class="o">=</span> 655360
</span></code></pre></td></tr></table></div></figure>
<p>在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'> 9. net.ipv4.netfilter.ip_conntrack_tcp_timeout_established <span class="o">=</span> 180
</span></code></pre></td></tr></table></div></figure>
<p>跟踪的连接超时结束时间 。</p>
<p>然后执行/sbin/sysctl -p让参数生效</p>
<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>/sbin/sysctl -p
</span></code></pre></td></tr></table></div></figure>
</div>
<div class="meta">
<div class="date">
<time datetime="2014-07-21T19:53:00+08:00" pubdate data-updated="true">Jul 21<span>st</span>, 2014</time></div>
<div class="tags">
<a class='category' href='/blog/categories/linux/'>Linux</a>
</div>
<div class="comments"><a href="/blog/2014/07/21/gao-fu-zai-xi-tong-%2Cwang-luo-can-shu-diao-zheng/#disqus_thread">Comments</a></div>
</div>
</article>
<nav id="pagenavi">
<div class="center"><a href="/blog/archives">Blog Archives</a></div>
</nav></div>
<footer id="footer" class="inner">Copyright © 2014
Sven Lu
</footer>
<script src="/javascripts/slash.js"></script>
<script src="/javascripts/jquery.fancybox.pack.js"></script>
<script type="text/javascript">
(function($){
$('.fancybox').fancybox();
})(jQuery);
</script> <!-- Delete or comment this line to disable Fancybox -->
<script type="text/javascript">
var disqus_shortname = 'modulife';
var disqus_script = 'count.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//go.disqus.com/' + disqus_script;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}());
</script>
</body>
</html>