OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

Hãy nhớ rằng các hệ thống khác nhau sẽ hoạt động khác nhau với cùng mức tải trung bình. Ví dụ: một hệ thống có card đồ họa hỗ trợ tăng tốc phần cứng sẽ không gặp vấn đề gì khi hiển thị hình ảnh 3D, trong khi hệ thống tương tự có card VGA giá rẻ sẽ chậm đi rất nhiều trong khi hiển thị. Chiếc P133 cũ của tôi sẽ trở nên khá khó chịu khi tôi khởi động máy chủ X, nhưng trên hệ thống hiện đại, bạn hầu như không nhận thấy sự khác biệt về tải hệ thống.


hình ảnh

4.3.5. Tôi có thể làm bất cứ điều gì với tư cách là một người dùng?


Một môi trường rộng lớn có thể làm bạn chậm lại. Nếu bạn có nhiều biến môi trường được đặt (thay vì biến shell), đường dẫn tìm kiếm dài không được tối ưu hóa (lỗi khi đặt biến môi trường đường dẫn) và nhiều cài đặt thường được thực hiện "nhanh chóng", hệ thống sẽ cần nhiều thời gian hơn để tìm kiếm và đọc dữ liệu.


Trong X, trình quản lý cửa sổ và môi trường máy tính để bàn có thể là những kẻ ăn CPU thực sự. Một chiếc máy tính để bàn thực sự sang trọng đều phải trả giá, ngay cả khi bạn có thể tải xuống miễn phí, vì hầu hết các máy tính để bàn đều cung cấp vô số tiện ích bổ sung. Khiêm tốn


là một đức tính tốt nếu bạn không mua một chiếc máy tính mới mỗi năm.


hình ảnh

4.3.5.1. quyền ưu tiên


Mức độ ưu tiên hoặc tầm quan trọng của một công việc được xác định bởi nó tốt đẹp con số. Một chương trình có số Nice cao là thân thiện với các chương trình khác, người dùng khác và hệ thống; nó không phải là một công việc quan trọng Con số Nice càng thấp thì công việc càng quan trọng và sẽ càng tốn nhiều tài nguyên nếu không chia sẻ chúng.


Làm cho công việc trở nên đẹp hơn bằng cách tăng số Nice của nó chỉ hữu ích cho các quy trình sử dụng nhiều thời gian của CPU (trình biên dịch, ứng dụng toán học và những thứ tương tự). Các quy trình luôn sử dụng nhiều thời gian I/O sẽ được hệ thống tự động khen thưởng và được ưu tiên cao hơn (số đẹp thấp hơn), ví dụ: đầu vào bàn phím luôn được ưu tiên cao nhất trên hệ thống.


Việc xác định mức độ ưu tiên của một chương trình được thực hiện bằng tốt đẹp chỉ huy.


Hầu hết các hệ thống cũng cung cấp BSD Lại đẹp lệnh cho phép bạn thay đổi tốt bụng của một lệnh đang chạy. Một lần nữa, hãy đọc trang hướng dẫn để biết thông tin cụ thể về hệ thống của bạn.


hình ảnhChương trình tương tác

KHÔNG phải là một ý tưởng tốt để tốt đẹp or Lại đẹp một chương trình tương tác hoặc một công việc đang chạy ở nền trước.

Việc sử dụng các lệnh này thường là nhiệm vụ của người quản trị hệ thống. Đọc trang hướng dẫn để biết thêm thông tin về chức năng bổ sung dành cho quản trị viên hệ thống.


hình ảnh

4.3.5.2. tài nguyên CPU


Trên mọi hệ thống Linux, nhiều chương trình muốn sử dụng (các) CPU cùng lúc, ngay cả khi bạn là người dùng duy nhất trên hệ thống. Mỗi chương trình cần một lượng chu kỳ nhất định trên CPU để chạy. Có thể đôi khi không có đủ chu kỳ vì CPU quá bận. Các thời gian hoạt động lệnh cực kỳ không chính xác (nó chỉ hiển thị mức trung bình, bạn phải biết điều gì là bình thường), nhưng không hề vô dụng. Có một số hành động bạn có thể thực hiện nếu bạn cho rằng CPU của mình là nguyên nhân khiến hệ thống không phản hồi:


• Chạy các chương trình nặng khi tải thấp. Đây có thể là trường hợp trên hệ thống của bạn trong đêm. Xem phần tiếp theo để lập kế hoạch.

• Ngăn hệ thống thực hiện những công việc không cần thiết: dừng các daemon và chương trình bạn không sử dụng, hãy sử dụng

xác định vị trí thay vì tìm kiếm nặng nề, ...

• Thực hiện các công việc lớn với mức độ ưu tiên thấp


Nếu không có giải pháp nào trong số này là tùy chọn trong trường hợp cụ thể của bạn, bạn có thể muốn nâng cấp CPU của mình. Trên máy UNIX, đây là công việc dành cho quản trị viên hệ thống.


hình ảnh

4.3.5.3. Tài nguyên bộ nhớ


Khi các tiến trình hiện đang chạy cần nhiều bộ nhớ hơn mức hệ thống có sẵn về mặt vật lý, hệ thống Linux sẽ không gặp sự cố; nó sẽ bắt đầu phân trang, hoặc trao đổi, nghĩa là tiến trình sử dụng bộ nhớ trên đĩa hoặc trong không gian hoán đổi, di chuyển nội dung của bộ nhớ vật lý (các phần chương trình đang chạy hoặc toàn bộ chương trình trong trường hợp hoán đổi) sang đĩa, do đó lấy lại bộ nhớ vật lý để xử lý nhiều tiến trình hơn. Điều này làm hệ thống chậm đi rất nhiều vì việc truy cập vào đĩa chậm hơn nhiều so với truy cập vào bộ nhớ. Các hàng đầu lệnh có thể được sử dụng để hiển thị bộ nhớ và sử dụng trao đổi. Các hệ thống sử dụng glibc cung cấp giấy nhớ bản ghi nhớ các lệnh để trực quan hóa việc sử dụng bộ nhớ.


Nếu bạn nhận thấy nhiều bộ nhớ và dung lượng trao đổi đang được sử dụng, bạn có thể thử:


• Loại bỏ, dừng hoặc đổi mới những chương trình sử dụng nhiều bộ nhớ

• Bổ sung thêm bộ nhớ (và trong một số trường hợp, thêm không gian trao đổi) vào hệ thống.

• Điều chỉnh hiệu năng hệ thống, điều này nằm ngoài phạm vi của tài liệu này. Xem danh sách đọc ở Phụ lục A để biết thêm.


hình ảnh

4.3.5.4. Tài nguyên vào/ra


Mặc dù các hạn chế về I/O là nguyên nhân chính gây căng thẳng cho quản trị viên hệ thống, nhưng hệ thống Linux lại cung cấp các tiện ích khá kém để đo hiệu suất I/O. Các ps, vmstat hàng đầu các công cụ đưa ra một số dấu hiệu về số lượng chương trình đang chờ I/O; netstat hiển thị số liệu thống kê giao diện mạng, nhưng hầu như không có công cụ nào để đo lường phản hồi I/O đối với tải hệ thống và iostat lệnh đưa ra một cái nhìn tổng quan ngắn gọn về cách sử dụng I/O chung. Có nhiều giao diện người dùng đồ họa khác nhau để đưa đầu ra của các lệnh này ở dạng dễ hiểu đối với con người.


Mỗi thiết bị đều có những vấn đề riêng, nhưng băng thông khả dụng cho các giao diện mạng và băng thông khả dụng cho các ổ đĩa là hai nguyên nhân chính gây ra tắc nghẽn trong hiệu suất I/O.


Các vấn đề vào/ra mạng:


• Mạng quá tải:


Lượng dữ liệu được vận chuyển qua mạng lớn hơn dung lượng của mạng, dẫn đến việc thực thi mọi tác vụ liên quan đến mạng của tất cả người dùng bị chậm. Chúng có thể được giải quyết bằng cách dọn dẹp mạng (chủ yếu liên quan đến việc vô hiệu hóa các giao thức và dịch vụ mà bạn không cần) hoặc bằng cách cấu hình lại mạng (ví dụ: sử dụng mạng con, thay thế hub bằng bộ chuyển mạch, nâng cấp giao diện và thiết bị).

• Vấn đề về tính toàn vẹn của mạng:


Xảy ra khi dữ liệu được truyền không chính xác. Việc giải quyết loại vấn đề này chỉ có thể được thực hiện bằng cách cách ly phần tử bị lỗi và thay thế nó.


Vấn đề I/O đĩa:


• tốc độ truyền trên mỗi tiến trình quá thấp:


Tốc độ đọc hoặc ghi cho một quy trình là không đủ.

• tốc độ truyền tổng hợp quá thấp:


Tổng băng thông tối đa mà hệ thống có thể cung cấp cho tất cả các chương trình đang chạy là không đủ.


Loại sự cố này khó phát hiện hơn và thường cần thêm phần cứng để phân chia lại luồng dữ liệu trên bus, bộ điều khiển và đĩa nếu phần cứng quá tải là nguyên nhân gây ra sự cố. Một giải pháp để giải quyết vấn đề này là cấu hình mảng RAID được tối ưu hóa cho các hoạt động đầu vào và đầu ra. Bằng cách này, bạn có thể giữ nguyên phần cứng. Nâng cấp lên bus, bộ điều khiển và đĩa nhanh hơn thường là lựa chọn khác.


Nếu nguyên nhân không phải do quá tải thì có thể phần cứng của bạn đang dần bị lỗi hoặc kết nối không tốt với hệ thống. Kiểm tra danh bạ, đầu nối và phích cắm để bắt đầu.


hình ảnh


KHAI THÁC. Người dùng


Người dùng có thể được chia thành nhiều lớp, tùy thuộc vào hành vi của họ với việc sử dụng tài nguyên:


• Người dùng thực hiện một số lượng lớn các công việc nhỏ: chẳng hạn như bạn, người mới bắt đầu sử dụng Linux.

• Người dùng thực hiện các công việc tương đối ít nhưng lớn: người dùng chạy mô phỏng, tính toán, mô phỏng hoặc các chương trình khác ngốn nhiều bộ nhớ và thường những người dùng này có tệp dữ liệu lớn đi kèm.

• Người dùng chạy ít công việc nhưng sử dụng nhiều thời gian của CPU (nhà phát triển và những người tương tự).


Bạn có thể thấy rằng các yêu cầu hệ thống có thể khác nhau đối với từng loại người dùng và khó có thể làm hài lòng tất cả mọi người. Nếu bạn đang sử dụng hệ thống nhiều người dùng, việc tìm hiểu thói quen của những người dùng khác và hệ thống sẽ rất hữu ích (và thú vị) để tận dụng tối đa hệ thống đó cho các mục đích cụ thể của bạn.


hình ảnh

4.3.5.6. Công cụ đồ họa


Đối với môi trường đồ họa, có rất nhiều công cụ giám sát có sẵn. Dưới đây là ảnh chụp màn hình của Trình giám sát hệ thống Gnome, có các tính năng hiển thị và tìm kiếm thông tin quy trình cũng như giám sát tài nguyên hệ thống:


Hình 4-3. Giám sát hệ thống Gnome


hình ảnh


Ngoài ra còn có một số biểu tượng tiện dụng mà bạn có thể cài đặt trên thanh tác vụ, chẳng hạn như ổ đĩa, bộ nhớ và màn hình tải. xload là một ứng dụng X nhỏ khác để theo dõi tải hệ thống. Tìm yêu thích của bạn!


hình ảnh

4.3.5.7. Làm gián đoạn quá trình của bạn


Là người dùng không có đặc quyền, bạn chỉ có thể tác động đến quy trình của riêng mình. Chúng tôi đã thấy cách bạn có thể hiển thị các quy trình và lọc ra các quy trình thuộc về một người dùng cụ thể cũng như những hạn chế có thể xảy ra. Khi bạn nhận thấy một trong các quy trình của mình đang tiêu tốn quá nhiều tài nguyên của hệ thống, bạn có thể thực hiện hai việc sau:


1. Làm cho quy trình sử dụng ít tài nguyên hơn mà không làm gián đoạn nó;

2. Dừng toàn bộ quá trình.


Trong trường hợp bạn muốn quy trình tiếp tục chạy nhưng bạn cũng muốn tạo cơ hội cho các quy trình khác trên hệ thống, bạn có thể Lại đẹp quá trình. Bắt đầu từ việc sử dụng tốt đẹp or Lại đẹp lệnh, hàng đầu là một cách dễ dàng để phát hiện (các) quy trình rắc rối và giảm mức độ ưu tiên.


Xác định quy trình trong cột "NI", rất có thể nó sẽ có mức độ ưu tiên âm. Kiểu r và nhập ID tiến trình của tiến trình mà bạn muốn gia hạn. Sau đó nhập giá trị đẹp, ví dụ "20". Điều đó có nghĩa là từ giờ trở đi, quá trình này sẽ mất nhiều nhất là 1/5 chu kỳ CPU.


Ví dụ về các quy trình mà bạn muốn tiếp tục chạy là trình mô phỏng, máy ảo, trình biên dịch, v.v.


hình ảnh

Nếu bạn muốn dừng một quá trình vì nó bị treo hoặc hoàn toàn gặp vấn đề về cách sử dụng I/O, tạo tệp hoặc sử dụng các tài nguyên hệ thống khác, hãy sử dụng lệnh giết yêu cầu. Nếu bạn có cơ hội, trước tiên hãy cố gắng kết thúc quá trình một cách nhẹ nhàng, gửi nó HẠN MỤC TIÊU tín hiệu. Đây là hướng dẫn để chấm dứt bất cứ điều gì nó đang làm, theo các thủ tục được mô tả trong mã của chương trình:


joe: ~> ps-ef | grep Mozilla

Joe 25822 1 0 ngày 11 tháng XNUMX ?

00:34:04 /usr/lib/mozilla-1.4.1/mozilla-

joe: ~> ps-ef | grep Mozilla

Joe 25822 1 0 ngày 11 tháng XNUMX ?


joe: ~> giết -15 25822

joe: ~> giết -15 25822

Trong ví dụ trên, người dùng joe đã dừng trình duyệt Mozilla của anh ấy vì nó bị treo.


hình ảnh

Một số quy trình khó loại bỏ hơn một chút. Nếu có thời gian, bạn có thể muốn gửi cho họ tín hiệu SIGINT để làm gián đoạn họ. Nếu điều đó cũng không hiệu quả, hãy sử dụng tín hiệu mạnh nhất, SIGKILL. Trong ví dụ dưới đây, joe dừng một Mozilla bị đóng băng:


joe: ~> ps-ef | grep Mozilla

Joe 25915 1 0 ngày 11 tháng XNUMX ?

00:15:06 /usr/lib/mozilla-1.4.1/mozilla-

joe: ~> ps-ef | grep Mozilla

Joe 25915 1 0 ngày 11 tháng XNUMX ?


joe: ~> giết -9 25915


joe: ~> ps-ef | grep 25915

joe 2634 32273 0 18:09 điểm/4 00:00:00 grep 25915

joe: ~> giết -9 25915


joe: ~> ps-ef | grep 25915

joe 2634 32273 0 18:09 điểm/4 00:00:00 grep 25915

Trong những trường hợp như vậy, bạn có thể muốn kiểm tra xem tiến trình có thực sự chết hay không bằng cách sử dụng grep lọc lại trên PID. Nếu điều này chỉ trả về grep quá trình, bạn có thể chắc chắn rằng bạn đã thành công trong việc dừng quá trình.


Trong số các tiến trình khó có thể tiêu diệt được là shell của bạn. Và đó là một điều tốt: nếu chúng dễ bị giết, bạn sẽ mất vỏ mỗi khi gõ Ctrl-C vô tình trên dòng lệnh, vì điều này tương đương với việc gửi SIGINT.


hình ảnhUNIX không có pipe là điều gần như không thể tưởng tượng được

Việc sử dụng các đường ống (|) để sử dụng đầu ra của một lệnh làm đầu vào của lệnh khác được giải thích trong chương tiếp theo, Chương 5.

Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: