Một bản vá 4 dòng mới có thể tăng đáng kể hiệu suất của hệ thống của bạn

Để rút ngắn một câu chuyện dài, vài ngày trước một trong những nhà phát triển kernel đã tải lên một bản vá (trong số 200 dòng mã) cho phép cải thiện đáng kể (gần 10 lần) hiệu năng của hệ thống, đặc biệt khi xử lý đa nhiệm trong khi thực hiện một tác vụ nặng (chẳng hạn như biên dịch kernel). Linus chúc mừng nhà phát triển này vì sự đóng góp to lớn của anh ấy. Tuy nhiên, một nhà phát triển Red Hat, Lennar Poettering không đồng ý với việc triển khai cải tiến này trực tiếp từ kernel; Đối với anh ấy, tốt hơn hết là thực hiện những thay đổi trong không gian người dùng (~/.bashrc). Linus đã tức giận và mắng nhà phát triển này, nói với anh ta rằng kết quả đã nói lên điều đó. Lennar, thay vì đáp lại bằng những lời lẽ gay gắt, lại ngồi xuống và nghĩ ra một giải pháp thay thế (không yêu cầu vá kernel) và chỉ chiếm 4 dòng. Nói tóm lại, Linus đã ngừng hoạt động… 

Lưu ý: phương pháp này yêu cầu hỗ trợ các nhóm tác vụ trong Linux Kernel (cgroups), tức là chỉ những người dùng có Kernel lớn hơn 2.6.36 mới có thể áp dụng.

Cách áp dụng bản vá trong Fedora

1.- Chỉnh sửa tệp ~/.bashrc.

gedit ~ / .bashrc

2.- Dán đoạn mã sau vào cuối tập tin:

nếu [ "$PS1" ] ; sau đó
mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$
echo $$ > /sys/fs/cgroup/cpu/user/$$/tác vụ
fi

3.- Chạy các lệnh sau:

mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777/sys/fs/cgroup/cpu/người dùng

Cách áp dụng bản vá trong Ubuntu

Trong Ubuntu mọi thứ phức tạp hơn một chút ...

1.- Chỉnh sửa tập tin rc.local với lệnh này:

sudo gedit /etc/rc.local

và dán vào trước chỗ ghi "exit 0", như sau:

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777/dev/cgroup/cpu/người dùng
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

2.- Lưu tệp và cấp cho nó quyền thực thi:

sudo chmod +x /etc/rc.local

3.- Chỉnh sửa tập tin ~ / .bashrc:

gedit ~ / .bashrc

4.- Dán đoạn mã sau vào cuối tập tin:

nếu [ "$PS1" ] ;
sau đó mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tác vụ
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

5.- Sửa đổi tệp cgroup_clean:

sudo gedit /usr/local/sbin/cgroup_clean

6.- Dán đoạn mã sau vào cuối tập tin:

# / Bin / sh
if [ "$*" != "/user" ]; sau đó
rmdir /dev/cgroup/cpu/$*
fi

7.- Lưu tệp và cấp cho nó quyền thực thi:

Sudo chmod +x /usr/local/sbin/cgroup_clean

8.- Khởi động lại hệ thống.

Lưu ý: nếu bạn thấy thư mục /dev/cgroup/ bạn sẽ nhận thấy sự cải thiện đáng kể trong việc quản lý đa nhiệm.

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   thalskarth dijo

    Tôi đã tìm thấy hướng dẫn cho Arch, chúng ở đây: http://pastebin.com/raw.php?i=sHRYRuAN

    Về phần mình, tôi đã áp dụng bản vá, nhìn chung tôi không nhận thấy nhiều cải thiện, nhưng tôi nhận thấy một sự thay đổi lớn khi cuộn qua các trang web, lần đầu tiên chúng thực sự chạy rất mượt!!! =)

  2.   Hãy sử dụng Linux dijo

    Tuyệt vời! Cảm ơn bạn rất nhiều vì đã chia sẻ!
    Tôi đã nói với bạn là chúng tôi đang tìm kiếm những người sử dụng Arch để viết blog phải không? Nếu bạn quan tâm, hãy viết thư cho chúng tôi tại Let's uselinux@gmail.com
    Một cái ôm lớn! Paul.

  3.   thalskarth dijo

    Cảm ơn bạn đã mời, chúng ta sẽ tiếp tục qua email 😉

  4.   thalskarth dijo

    Tình cờ là không có hướng dẫn nào cho Archlinux phải không? 🙂

  5.   Hãy sử dụng Linux dijo

    Tôi đã không tìm thấy chúng. Nhưng có điều gì đó mách bảo tôi rằng nó có lẽ giống với Fedora hơn. Mặt khác, cần lưu ý rằng vì mọi người đều xây dựng Arch theo ý muốn nên có lẽ điều đó sẽ ảnh hưởng đến quy trình phải tuân theo...

  6.   thalskarth dijo

    Ở đây tôi đã tìm ra cách áp dụng chúng trong Archlinux, nó khá giống với Fedora: http://pastebin.com/raw.php?i=sHRYRuAN

  7.   Miquel Mayol tôi Tur dijo

    bash: /dev/cgroup/cpu/user/$/tasks: Không có tệp hoặc thư mục như vậy

    Tôi đã làm theo những hướng dẫn này và nó cứ báo lỗi này khi mở thiết bị đầu cuối AMD64 x nếu nó có liên quan đến nó

  8.   Miquel Mayol tôi Tur dijo

    Tôi đã tìm thấy rồi, làm ơn Pablo sửa lại đi http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html

    Những gì bạn phải làm trong Ubuntu – thay vì những gì bạn đặt – là:

    sudo gedit /usr/local/sbin/cgroup_clean

    và đặt cái này:

    # / Bin / sh
    if [ «$*» != «/người dùng» ]; sau đó
    rmdir /dev/cgroup/cpu/$*
    fi

  9.   Hãy sử dụng Linux dijo

    Sẵn sàng! Đã sửa! Cảm ơn!

  10.   Hãy sử dụng Linux dijo

    Đúng rồi! Cảm ơn vì đã nhắc tôi!
    Tôi vừa thêm phần làm rõ đó vào đầu bài viết.
    Một cái ôm! Paul.

  11.   dasinex dijo

    Cụ thể, tôi sẽ nhận được những lợi ích gì với tư cách là người dùng và những cải thiện hiệu suất nào sẽ được thấy trong hệ thống của tôi.

  12.   Hãy sử dụng Linux dijo

    Mọi thứ diễn ra nhanh hơn nhiều. Tuy nhiên, sự khác biệt thực sự được “nhìn thấy” khi bạn đang làm một việc nặng và muốn làm việc khác cùng lúc. Ví dụ: bạn đang chạy cài đặt một số chương trình hoặc bạn đang biên dịch kernel hoặc chỉnh sửa một video nặng, đồng thời bạn muốn lướt internet hoặc xem phim, v.v.

  13.   Hãy sử dụng Linux dijo

    Hãy cho tôi biết nếu bạn tìm ra cách triển khai bản vá trong Arch. Tôi sẽ thử chạy bản vá hoạt động trong Fedora.
    Ôm! Paul.

  14.   Hãy sử dụng Linux dijo

    Tôi đoán điều đó phụ thuộc vào cách bạn sử dụng máy tính của mình. Nếu bạn hầu như không sử dụng internet và một trình soạn thảo văn bản nhẹ nhàng... bạn sẽ không "cảm nhận" được sự khác biệt. Mặt khác, nếu bạn giống tôi và thực hiện các tác vụ nặng (chẳng hạn như chuyển đổi video, biên dịch kernel, v.v.) trong khi duyệt Internet hoặc xem phim, bạn sẽ nhận thấy sự khác biệt.

  15.   Sundaypv dijo

    Khi tất cả các bước đã được hoàn thành, khi tôi mở terminal, tôi luôn nhận được thông tin sau:
    mkdir: không thể tạo thư mục “/dev/cgroup/cpu/user/1844”: Tệp hoặc thư mục không tồn tại
    bash: /dev/cgroup/cpu/user/1844/tasks: Không có tệp hoặc thư mục như vậy
    bash:/dev/cgroup/cpu/user/1844/notify_on_release: Không có tệp hoặc thư mục như vậy
    domingopv @ pc1: ~ $
    Mọi thứ đều hoạt động tốt ngay cả thiết bị đầu cuối, tôi có làm gì sai không?

  16.   Hãy sử dụng Linux dijo

    Mmmm...Tôi thực sự không biết nó có thể là gì. Tuy nhiên, tôi có ấn tượng rằng rất có thể bạn đã thực hiện không chính xác một số bước, đặc biệt là bước 5 trở lên. Hãy thử lặp lại chúng hoặc đảm bảo rằng bạn đã làm đúng. Đó là tất cả những gì tôi có thể nghĩ bây giờ.
    Một cái ôm lớn! Paul.

  17.   Sundaypv dijo

    Tôi đã cài đặt lại maverick và cài đặt lại bản vá và bây giờ tôi nhận được thông tin sau.
    mkdir: không thể tạo thư mục “/dev/cgroup/cpu/user/1678”: Tệp hoặc thư mục không tồn tại
    bash: /dev/cgroup/cpu/user/1678/tasks: Không có tệp hoặc thư mục như vậy
    bash:/dev/cgroup/cpu/user/1678/notify_on_release: Không có tệp hoặc thư mục như vậy
    domingopv @ pc1: ~ $

  18.   Hãy sử dụng Linux dijo

    Rất tiếc...Tôi thực sự không biết nó có thể là gì. Nó làm việc hoàn hảo cho tôi.
    Có điều gì đó mách bảo tôi rằng việc dọn dẹp cgroup chưa được thực hiện đúng cách. Đó là lý do tại sao tôi nhấn mạnh rằng bạn nên xem bước 5 trở đi.
    Chúc mừng! Paul.

  19.   tôi không nói dijo

    Ôi chúa ơi, thật ấn tượng, tôi có thể xem video flash 1080p trên Nvidia 8400 thụ động, ý tôi là, tệ tệ, HOÀN HẢO, các CPU đều hoạt động, tuyệt vời, thật là một cải tiến, nó tốt hơn nhiều, tôi có Ubuntu 10.04 😀 thật tuyệt , những video này sẽ phù hợp với tôi hahaha 😀

  20.   Delano dijo

    RC.local gì? Có một số, đó là cái nào? Lời chào hỏi.

  21.   Hãy sử dụng Linux dijo

    Tôi chỉ đơn giản viết các lệnh được liệt kê ở điểm 4. Bạn không cần phải sao chép nó vào một tệp mà thực hiện các lệnh đó.
    Chúc mừng! Paul.

  22.   Thủ thuật GNU / Linux dijo

    Nó được giải thích kém.

    Những gì bạn cần làm là chỉnh sửa tệp RC.local bằng:

    sudo gedit /etc/rc.local

    bạn phải dán vào bên trong (trước lối ra 0):

    mkdir -p /dev/cgroup/cpu
    mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
    mkdir -m 0777/dev/cgroup/cpu/người dùng
    echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

    Đó chính là vấn đề. Những bước đó được giải thích kém.

  23.   Hãy sử dụng Linux dijo

    Bạn đúng rồi! Nó ghi rõ ràng là "chỉnh sửa tệp RC.local." Điều còn thiếu là lệnh thực hiện việc này (điều mà một số người có thể không biết). Tôi sẽ thêm nó ngay bây giờ.
    Cảm ơn đã thông báo! Lời chào hỏi! Pablo.

  24.   Aespinoza dijo

    Quy trình trong PCLinuxOs sẽ như thế nào?

  25.   Hãy sử dụng Linux dijo

    Sự thật là tôi không biết…
    Nếu phát hiện ra, đừng quên chia sẻ dữ liệu với những người còn lại nhé!
    Cảm ơn bạn rất nhiều!
    Chúc mừng! Paul.

  26.   gonho dijo

    Đối với tôi nó có vẻ như vậy hay bạn chưa đưa ra bất kỳ tài liệu tham khảo nào về việc bạn lấy nó từ đâu? Bạn có thể cho tôi biết nguồn được không?

    Cảm ơn

  27.   Hãy sử dụng Linux dijo

    Không có nguồn duy nhất. Tôi đang tìm cách thực hiện điều đó từ nhiều nguồn khác nhau và từ kinh nghiệm cá nhân của tôi. Nói chung, tôi có thể nói với bạn rằng nguồn là hàng triệu blog đã đăng lại tin tức đó. Tìm kiếm "bản vá kernel linux 200 dòng" và bạn sẽ thấy những gì tôi đang nói đến. Tôi không nhớ chính xác, nhưng phần Ubuntu có thể được lấy từ WebUpd8; không như vậy với Fedora.

  28.   may mắn0921 dijo

    Tôi là người dùng Ubuntu 64 bit cách đây không lâu và khi nhìn thấy mẹo này, tôi bắt đầu điều tra và kernel hiện tại tôi có là 2.6.32-27 theo bài đăng, bản vá này chỉ có thể được áp dụng cho các kernel cao hơn hoặc bằng 2.6.36 Câu hỏi của tôi là nếu thay đổi này chỉ hoạt động đối với các bản phân phối 32 bit hoặc trong bản phân phối hiện tại của tôi thì hạt nhân có thể được cập nhật lên 2.6.36 không?

    Cảm ơn tất cả các thông tin trên trang web, tài liệu tuyệt vời.

  29.   Hãy sử dụng Linux dijo

    Thay đổi này hoạt động như nhau đối với 32 và 64 bit.
    Chúc mừng! Paul.

  30.   Ông Tuxito dijo

    cho một câu hỏi và liệu điều này có gây rắc rối cho một số cập nhật sau này không?
    Nếu mọi chuyện không diễn ra tốt đẹp, điều tồi tệ nhất có thể xảy ra là gì?
    (bạn thấy đấy, chỉ cần chuyển từ Ubuntu 10.04 lên 10.10 là mọi thứ sẽ bị hỏng)

  31.   jesuslara dijo

    Điều đầu tiên cần làm rõ (để tránh sử dụng phương pháp này một cách vô trách nhiệm) là nó yêu cầu hỗ trợ cho các nhóm tác vụ trong Hạt nhân Linux (cgroups), tức là chỉ những người dùng có Kernel lớn hơn 2.6.36 mới có thể áp dụng phương pháp này. sự cải tiến.