日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 调优系列

發布時間:2025/3/8 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 调优系列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux系統內核:修改TCP/IP調優參數

所有的TCP/IP調優參數都位于/proc/sys/net/目錄。例如, 下面是最重要的一些調優參數, 后面是它們的含義:

1. /proc/sys/net/core/rmem_max — 最大的TCP數據接收緩沖。

2. /proc/sys/net/core/wmem_max — 最大的TCP數據發送緩沖。

3. /proc/sys/net/ipv4/tcp_timestamps — 時間戳在(請參考RFC 1323)TCP的包頭增加12個字節。

4. /proc/sys/net/ipv4/tcp_sack — 有選擇的應答。

5. /proc/sys/net/ipv4/tcp_window_scaling — 支持更大的TCP窗口. 如果TCP窗口最大超過65535(64KB), 必須設置該數值為1。

6. rmem_default — 默認的接收窗口大小。

7. rmem_max — 接收窗口的最大大小。

8. wmem_default — 默認的發送窗口大小。

9. wmem_max — 發送窗口的最大大小。

/proc目錄下的所有內容都是臨時性的, 所以重啟動系統后任何修改都會丟失。

建議在系統啟動時自動修改TCP/IP參數:

把下面代碼增加到/etc/rc.local文件, 然后保存文件, 系統重新引導的時候會自動修改下面的TCP/IP參數:

?

echo 256960 > /proc/sys/net/core/rmem_default echo 256960 > /proc/sys/net/core/rmem_max echo 256960 > /proc/sys/net/core/wmem_default echo 256960 > /proc/sys/net/core/wmem_maxecho 0 > /proc/sys/net/ipv4/tcp_timestamps echo 1 > /proc/sys/net/ipv4/tcp_sack echo 1 > /proc/sys/net/ipv4/tcp_window_scaling

TCP/IP參數都是自解釋的, TCP窗口大小設置為256960, 禁止TCP的時間戳(取消在每個數據包的頭中增加12字節), 支持更大的TCP窗口和TCP有選擇的應答。

上面數值的設定是根據互連網連接和最大帶寬/延遲率來決定。

注: 上面實例中的數值可以實際應用, 但它只包含了一部分參數。

另外一個方法: 使用 /etc/sysctl.conf 在系統啟動時將參數配置成您所設置的值:

?

net.core.rmem_default = 256960 net.core.rmem_max = 256960 net.core.wmem_default = 256960 net.core.wmem_max = 256960net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_sack =1 net.ipv4.tcp_window_scaling = 1

?linux文件描述符1024限制

今天突然報了 open files limit...原來linux默認的文件描述符1024(ulimit -a命令查看)被用光了,為了增大文件描述符號,說要編譯內核才行,今天研究了半天,居然沒成功,后來干脆,用 ulimit -HSa 65536 (1MB64個文件描述符)似乎也生效,這里特別需要注意的地方,別忘了將上面一句加入到/etc/profile里面去,然后用lsof -p JAVA_PID|wc -l 查看jboss似乎已經可以跑到了1758.

附: 文件描述符是一個簡單的整數,用以標明每一個被進程所打開的文件和socket。第一個打開的文件是0,第二個是1,依此類推。Unix 操作系統通常給每個進程能打開的文件數量強加一個限制。更甚的是,unix 通常有一個系統級的限制。

因為squid 的工作方式,文件描述符的限制可能會極大的影響性能。當squid 用完所有的文件描述符后,它不能接收用戶新的連接。也就是說,用完文件描述符導致拒絕服務。直到一部分當前請求完成,相應的文件和socket 被關閉,squid 不能接收新請求。當squid發現文件描述符短缺時,它會發布警告。

在運行./configure 之前,檢查你的系統的文件描述符限制是否合適,能給你避免一些麻煩。大多數情況下,1024 個文件描述符足夠了。非常忙的cache可能需要4096或更多。在配置文件描述符限制時,我推薦設置系統級限制的數量為每個進程限制的2 倍。 2、怎么突破,具體方法? 先查看LINUX默認的文件描述符: # ulimit -n
1024
我們用命令 ulimit -HSn 65536 來增大文件描述符,然后編譯安裝squid, 把ulimit -HSn 65536放到/etc/rc.d/rc.local讓啟動時加載。 以下為轉載:

Linux

在Linux 上配置文件描述符有點復雜。在編譯squid 之前,你必須編輯系統include 文件中的一個,然后執行一些shell 命令。請首先編輯/usr/include/bits/types.h 文件,改變__FD_SETSIZE 的值:
#define _ _FD_SETSIZE 8192

下一步,使用這個命令增加內核文件描述符的限制:
# echo 8192 >; /proc/sys/fs/file-max

最后,增加進程文件描述符的限制,在你即將編譯squid 的同一個shell 里執行:
sh# ulimit -Hn 8192

該命令必須以root 運行,僅僅運行在bash shell。不必重啟機器。

使用這個技術,你必須在每一次系統啟動后執行上述echo 和ulimit 命令,或者至少在squid 啟動之前。假如你使用某個rc.d 腳本來啟動squid,那是一個放置這些命令的好地方。

基本系統調節

  在對系統的 Apache、PHP 和 MySQL 組件進行調優之前,應該花一些時間確保底層 Linux 組件的運行正常。還應該對正在運行的服務進行縮減,只運行需要的那些服務。這不但是一種良好的安全實踐,而且可以節省內存和 CPU 時間。

  一些快速的內核調優措施

  大多數 Linux 發布版都定義了適當的緩沖區和其他 Transmission Control Protocol(TCP)參數。可以修改這些參數來分配更多的內存,從而改進網絡性能。設置內核參數的方法是通過 proc 接口,也就是通過讀寫 /proc 中的值。幸運的是,sysctl 可以讀取 /etc/sysctl.conf 中的值并根據需要填充 /proc,這樣就能夠更輕松地管理這些參數。清單 2 展示在互聯網服務器上應用于 Internet 服務器的一些比較激進的網絡設置。

清單 2. 包含較為激進的網絡設置的 /etc/sysctl.conf
?????????????? ?
# Use TCP syncookies when needed
net.ipv4.tcp_syncookies = 1
# Enable TCP window scaling
net.ipv4.tcp_window_scaling: = 1
# Increase TCP max buffer size
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
# Increase Linux autotuning TCP buffer limits
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# Increase number of ports available
net.ipv4.ip_local_port_range = 1024 65000
?
  將這些設置添加到 /etc/sysctl.conf 的現有內容中。第一個設置啟用 TCP SYN cookie。當從客戶機發來新的 TCP 連接時,數據包設置了 SYN 位,服務器就為這個半開的連接創建一個條目,并用一個 SYN-ACK 數據包進行響應。在正常操作中,遠程客戶機用一個 ACK 數據包進行響應,這會使半開的連接轉換為全開的。有一種稱為 SYN 泛濫(SYN flood) 的網絡攻擊,它使 ACK 數據包無法返回,導致服務器用光內存空間,無法處理到來的連接。SYN cookie 特性可以識別出這種情況,并使用一種優雅的方法保留隊列中的空間(細節參見 參考資料 一節)。大多數系統都默認啟用這個特性,但是確保配置這個特性更可靠。

  啟用TCP窗口伸縮使客戶機能夠以更高的速度下載數據。TCP 允許在未從遠程端收到確認的情況下發送多個數據包,默認設置是最多 64 KB,在與延遲比較大的遠程客戶機進行通信時這個設置可能不夠。窗口伸縮會在頭中啟用更多的位,從而增加窗口大小。

  后面四個配置項增加 TCP 發送和接收緩沖區。這使應用程序可以更快地丟掉它的數據,從而為另一個請求服務。還可以強化遠程客戶機在服務器繁忙時發送數據的能力。

  最后一個配置項增加可用的本地端口數量,這樣就增加了可以同時服務的最大連接數量。

  在下一次引導系統時,或者下一次運行 sysctl -p /etc/sysctl.conf 時,這些設置就會生效。

  配置磁盤來提高性能

  磁盤在 LAMP 架構中扮演著重要的角色。靜態文件、模板和代碼都來自磁盤,組成數據庫的數據表和索引也來自磁盤。對磁盤的許多調優(尤其是對于數據庫)集中于避免磁盤訪問,因為磁盤訪問的延遲相當高。因此,花一些時間對磁盤硬件進行優化是有意義的。

  首先要做的是,確保在文件系統上禁用 atime 日志記錄特性。atime 是最近訪問文件的時間,每當訪問文件時,底層文件系統必須記錄這個時間戳。因為系統管理員很少使用 atime,禁用它可以減少磁盤訪問時間。禁用這個特性的方法是,在 /etc/fstab 的第四列中添加 noatime 選項。清單 3 給出了一個配置示例。

  清單3. 演示如何啟用 noatime 的 fstab 示例
???????????????
/dev/VolGroup00/LogVol00 /????????????????????? ext3??? defaults,noatime??????? 1 1
LABEL=/boot???????????? /boot?????????????????? ext3??? defaults,noatime??????? 1 2
devpts????????????????? /dev/pts??????????????? devpts? gid=5,mode=620? 0 0
tmpfs?????????????????? /dev/shm??????????????? tmpfs?? defaults??????? 0 0
proc??????????????????? /proc?????????????????? proc??? defaults??????? 0 0
sysfs?????????????????? /sys??????????????????? sysfs?? defaults??????? 0 0
LABEL=SWAP-hdb2???????? swap??????????????????? swap??? defaults??????? 0 0
LABEL=SWAP-hda3???????? swap??????????????????? swap??? defaults??????? 0 0
?
  在清單3中只修改了 ext3 文件系統,因為 noatime 只對駐留在磁盤上的文件系統有幫助。為讓這一修改生效,不需要重新引導;只需重新掛裝每個文件系統。例如,為了重新掛裝根文件系統,運行 mount / -o remount。

  有多種磁盤硬件組合,而且 Linux 不一定能夠探測出訪問磁盤的最佳方式。可以使用 hdparm 命令查明和設置用來訪問 IDE 磁盤的方法。hdparm -t /path/to/device 執行速度測試,可以將這個測試結果作為性能基準。為了使結果盡可能準確,在運行這個命令時系統應該是空閑的。清單 4 給出在 hda 上執行速度測試的結果。

  清單4. 在 /dev/hd 上執行的速度測試
???????????????
# hdparm -t /dev/hda

/dev/hda:
?Timing buffered disk reads:? 182 MB in? 3.02 seconds =? 60.31 MB/sec
?
  這一測試說明,在這個磁盤上讀取數據的速度是大約每秒 60 MB。

  在嘗試一些磁盤調優選項之前,必須注意一個問題。錯誤的設置可能損害文件系統。有時候會出現一個警告,指出這個選項與硬件不兼容;但是,有時候沒有警告消息。因此,在將系統投入生產之前,必須對設置進行徹底的測試。在所有服務器上都采用標準的硬件也會有所幫助。

  表 2 列出比較常用的一些選項。

表 2. hdparm 的常用選項
選項       描述
-vi    向磁盤查詢它支持的設置以及它正在使用的設置。
-c?    查詢/啟用 (E)IDE 32 位 I/O 支持。hdparm -c 1 /dev/hda 啟用這個設置。
-m     查詢/設置每中斷多扇區模式。如果設置大于零,設置值就是每個中斷可以傳輸的最大扇區數量。
-d1-X   啟用直接內存訪問(DMA)傳輸并設置 IDE 傳輸模式。hdparm 手冊頁詳細說明了在 -X 后面可以設置的數字。只有     在-vi說明目前并未使用最快速的模式的情況下,才需要進行這個設置。

  不幸的是,對于 Fiber Channel and Small Computer Systems Interface(SCSI)系統,調優依賴于具體的驅動器。

  必須將有幫助的設置添加到啟動腳本中,比如 rc.local。

http://www.linuxeden.com/html/softuse/20070130/25284.html

http://blog.chinaunix.net/u/19673/showart.php?id=302262

http://www.lupaworld.com/viewnews_19052_page_2.html

總結

以上是生活随笔為你收集整理的linux 调优系列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。