Tối ưu hóa Linux

GIT – Kernel của hệ điều hành linux là một nguồn mở vì thế ta có thể chỉnh sửa để có thể được tối ưu theo nhu cầu của mình và để hệ thống đượchỗ trợ tốt nhất . Các công việc tối ưu chủ yếu dựa vào các tập tin cấu hình của linux , và các cờ hiệu tối ưu của hệ thống . Thành phần quan trọng của Linux là Kerne.

Linux kernel là nống cốt của hệ điều hành, không có nó thì sẽ không có Linux. Vì vậy chúng ta phải quan tâm đến kernel , cấu hình nó cho thích hợp những gì chúng ta cần và biên dịch đúng những đặc trưng chúng ta thật sự cần.
Việc đầu tiên cần làm là xây dựng một kernel thích hợp nhất cho hệ thống của bạn. Khi cấu hình kernel chỉ cần biên dịch những gì cần và sử dụng. Nhu cầu tối ưu hoá cho hệ thống Linux trở nên cần thiết. Việc điều chỉnh chủ yếu trên máy server của bạn, trong chiến lược này thì hệ điều hành của bạn phải thích ứng với toàn bộ hệ thống. Việc tối ưu tập trung chủ yếu vào việc chỉnh sửa các tập tin hệ thống của hệ thống Linux đang sữ dụng. Công việc tối ưu rất nguy hiểm vì vậy phải nắm rõ các cơ chế làm việc của hệ thống và những thông số của hệ thống. Để đảm bảo thì nên làm trên hệ thống lab trước khi thực hiện việc tùy chỉnh này.

  • Một Số Thao Tác Tối Ưu Đơn Giản 

Nếu như các bạn chưa am hiểu lắm về linux thì chúng ta có thể tối ưu hệ thống linux bằng một số thao tác đơn giản như sau :
Trước hết bạn phải dùng lệnh bên dưới để biết trình biên dịch nào được cài đặt trên hệ thống
[ @localhost / ]#egcs –version
Hiệu chỉnh tập tin : “/etc/profile” thêm vào dòng sau :
CFLAGS='-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions'
Ở dòng export thêm vào như sau :
export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL INPUTRC CFLAGS LANG LESSCHARSET
Giải thích :
-09 : cờ hiệu tạo sự thực hiện hiệu quả nhất cho bộ xử lyy1
”-funroll-loops”: thực hiện sự tối ưu hoá vòng lặp đang thực thi ( xác định lúc biên dịch hay lúc lưu hành)
“-ffast-math”: chấp nhận các trình biên dịch gcc , quy luật tối ưu tốc độ( ANSI hay IEEE ) 
“-malign-double” : điều khiển có hay không trình biên dịch gcc sắp hàng đợi các biến double , long double and long long trên một đường biên : (two-word boundary) or ( one-word boundary) . việc đặt biến này giúp cho hệ thống chạy nhanh hơn trên  pentium với nhiều bộ nhớ .
“-mcpu=pentiumpro”: đây là thiết lập  mặc định của hệ thống khi ra chỉ thị lập chương trình.
“40 500 64 256 500 3000 500 1884 2” “-march=pentiumpro”: cũng như trên , nhưng trong việc biên dịch chương trình và chỉ thị cho máy.
“-fomit-frome-pointer”: Tuỳ chọn này nhằm cho phép chương trình không lưu giữ frame pointer ( con trỏ khung) đối với những hàm mà không cần đến nó

  • Bây giờ thì đến bộ nhớ ảo ( virtual memory ) 

Ta hiệu chỉnh tập tin “/proc/sys//bdflush” nhằm cải tiến việc thi hành hệ thống tập tin . Tiến hành hiệu chỉnh : bạn thêm các dòng sau vào tập tin”/etc/.conf
# Improve file system 
vm.bdflush = 100 1200 128 512 5000 500 1884 2
# Improve virtual memory performance
vm.buffermem = 80 10 60
# Improve the number of open files
fs.file-max = con số [số ram trên máy bạn /4=?*256=con số]( tuỳ chọn này tăng khả năng mở nhiều tập tin ..)
# Improve virtual memory preformance
net.ipv4.ip_local_port_range = 32768 61000 (max đầu cuối)- mặc định là 1024 4999 . (bạn chình thông số này nếu máy bạn có kết nối mạng nội bộ)
# Improve the number of inodes opened
fs.inode-max = ? [(con số của fs.file-max)*4=?](gia tăng chỉ số “inode-max”)
Sau đó lưu lại và để thay đổi có hiệu quả bạn dùng lệnh /etc/rc.d/init.d/network restart
  • Tối Ưu Hệ Thống Tập Tin Trong Linux
Dựa vào tập tin “/etc/nsswitch.conf”
Tập tin “/etc/nsswitch.conf” được dùng để cấu hình các dịch vụ mà được dùng để xác định các thông tin chẳng hạn như các hostname, các tập tin mật mã, các tập tin nhóm. Hai thông tin, “ files” và “group files” trong trường hợp của chúng ta thi không được dùng, bởi vì chúng ta khônng sử dụng các dịch vụ NIS trên máy server của chúng ta. Nên chỉ tập trung vào dòng host trong tập tin này.
Soạn thảo tập tin nsswitch.conf và thay đổi dòng “hosts” thành : “host:  files”.
Điều này có nghĩa là đối với các chương trình mà cần phải phân giải địa chỉ. Chúng sẽ sử dụng đăt trưng dns đầu tiên và sau đó dùng đến tập tin “/etc/hosts” nếu các DNS servers chưa sẵn sàng hoặc không thể phân giải địa chỉ.

Các thông số của tập tin “/etc/nsswitch.conf

Thông số “file-max”
Tập tin file-max “/proc/sys/fs/file-max” đặt tối đa số tập tin xử lí (file-handle) mà Linux kernel sẽ cấp phát. Chúng ta hiệu chỉnh tập tin này để cải tiến số lượng tập tin được mơ bằng cách tăng giá trị của “/proc/sys/fs/file-max” tới một giá trị hợp lí nào đó.
Ví dụ: máy 4M RAM là 256 hoặc 128M Ram là 8129.
Cài đặt mặc nhiên cho các thông số “file-max” trên Red Hat Linux là : “4096”.
Để thay đổi các giá trị của file-max thì soạn thảo tập tin “etc/sysctl.conf”và thêm vào dòng sau:
fs.file-max=8192
Sau đó Bạn khởi động lại hệ thống mạng của mình để việc thay đổi có hiệu quả.
Thông số “inode-max”
Tập tin inode-max “proc/sys/fs/file-max” đặt tối đa số inodeshandler.
Chúng ta hiệu chỉnh tập tin này phù hợp để cải tiến số lưộng inode được mở bằng cách tăng giá trị của “/proc/sys/fs/inode-max” tới một giá trị xấp xỉ 3 đến 4 lần số lượng tập tin mở mà chúng ta đã đặt thông số “file-max” ở trên. Điều này được làm bởi vì số các inode được mở là tối thiểu một trên một tập tin được mở và thường lớn hơn nhiều đối với các tập tin lớn.
Cài đặt mặc nhiên cho các thông số “file-max” trện Red Hat Linux là:”16376”.
Để điều chỉnh giá trị của inode-max lên 128M thì soạn thảo tập tin
“/etc/sysctl.conf” và thêm vào dòng sau:
fs.inode-max=8192*4.
Sau đó bạn khởi động lại hệ thống mạng.

  • Thông số “ulimit”

Tự bản thân Linux có một “Max Processes” trên giới hạn của người sử dụng hệ thống. Đặc trưng này cho phép ta điều khiển số tiến trình (processes) một người sử dụng đang tồn tại trên server được phép để có. Để cải tiến việc thực hiện, chúng ta có thể an toàn đặt giới hạn các tiến trình (processes) cho người sử dụng có quyền cao nhất trong hệ thống là “root” để không bị giới hạn.
Soạn thảo tập tin .bashrc (/root/.bashrc) và thêm vào dòng sau: ulimit –u unlimited.
Bạn phải thoát ra và vào lại hệ thống từ máy trạm.
Tăng giới hạn hệ thống trên các tập tin mở.
Một tiến trình trên Red Hat Linux có thể mở ít nhất 31000 tập
tin mô tả. Để tăng số các tập tin mở tới 90000 cho tài khoản root thực hiện:
Soạn tập tin .bashrc( vi /root/.bashrc) và thêm vào dòng:
ulimit –n 90000
Bạn thoát ra và vào lại hệ thống từ máy trạm của bạn để việc thay đổi có hiệu quả.

  • Swap partition

Đặt các partition của bạn gần nơi bắt đều của ổ đĩa của bạn có thể cung cấp cho bạn một số cải tiến có thể chấp nhận được.
Điều chỉnh sự thực hiện đĩa cứng IDE
Sự thực thi tăng được tường trình trên sự hoạt động đọc/ghi đĩa bằng việc cài đặt các ổ đĩa IDE sử dụng DMA, tốc độ truyền 32-bit và các
chế độ multiple sector. Kernel dường như sử dụng nhiều sự sắp đặt để duy trì ngoại trừ nó thực hiện các việc khác . Lệnh sau thay đổi việc cài đặt ổ đĩa của bạn là “hdparm”.
Để hổ trợ 32-bit I/O trên các PCI bus, dùng lệnh sau:
[root@ /]# /sbin/hdparm –c 1 /dev/had
Để hổ trợ DMA dùng lệnh sau:
[root@ /]# /sbin/hdparm –d 1 /dev/had
Để hổ trợ truyền multiword DMA mode 2, dùng lệnh sau:
[root@ /]# /sbin/hdparm –d 1 –X34 /dev/had
Để hổ trợ truyền dữ liệu UltraDMA mode 2, dung lệnh sau:
[root@ /]# /sbin/hdparm –d 1 –X66 /dev/had
Để hổ trợ multi sector mode I/O, dùng lệnh sau:
[root@ /]# /sbin/hdparm –m XX /dev/had
Trong đó XX là cái đặt tối đa được hổ trợ bởi ổ đĩa của bạn. Có thể tìm kiếm MaxMultiSect bằng lện sau:
[root@ /]# /sbin/hdparm –i /dev/had
Chế độ multi sector (aka IDE Block Mode) là một đặc trưng của hấu hết các ổ đĩa cứng IDE,cho phép việc truyền của nhiều sector trên ngắt vào ra hơn thường lệ là một sector trên ngắt. Khi đặc trưng này được hổ trợ, nó giảm tổng phí (overload) hệ điều hành cho việc đọc/ghi đĩa khoảng 30-50 %. Trên nhiều hệ thống nó cũng tăng năng suất truyền dữ liệu của bất cứ nơi đâu từ 5% đến 50%.

  • Xử lý nhiều các kết nối theo thời gian với TCP/IP.

Lợi điểm này tạo các giá trị thời gian mặc định cho kết nối TCP/IP thấp hơn do vậy nhiều kết nối có thể được xử lý cùng thời gian trên giao thức TCP/IP của bạn. Nó sẽ giảm tổng số thới gian Linux của hệ thống cố gắng hoàn thành việc đóng một kết nối và tổng số thời gian trước khi nó sẽ huỷ bỏ một kết nối củ. Điều này sẽ giảm mốt số phần mở rộng IP không cần đến.
Các giá trị cài đặt mặc định cho các thông số TCP/IP cho Linux
For the tcp_fin_timeout ”180”
For the tcp_keepalive_time ”7200”
For the tcp_window_scalling ”1”
For the tcp_sack ”1”
For the tcp_timestamps “1”
Để hiệu chỉnh các giá trị TCP/IP mới, soạn thảo tập tin “/etc/sysctl.conf” và thêm vào dòng sau:
net.ipv4.tcp_fin_timeout =30
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_window_scalling=0
net.ipv4.tcp_sack=0
net.ipv4.tcp_timestamps=0
Nguồn: http://www.gocit.vn/bai-viet/toi-uu-he-thong-linux/

Nhận xét

Bài đăng phổ biến từ blog này

[AUTOCAD 2008] Hướng dẫn cài đặt và crack autocad 2008 (kèm link download)

[PES 2014]Hướng dẫn download cài đặt, việt hóa, cập nhật thị trường chuyển nhượng mới nhất.

Tạo bộ nhớ đêm Cache cho Ổ cứng SSD bằng 2 bước đơn giản