自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

優(yōu)化了一波Linux性能,面試官讓我出門左拐

系統(tǒng) Linux
關(guān)于 Linux? 系統(tǒng)是什么東西,我們在這里直接不進行贅述了,畢竟大家已經(jīng)都是作為有經(jīng)驗的開發(fā)人員,就算是沒有工作經(jīng)驗的人,至少也都知道,目前市場上比較流行的操作系統(tǒng),就這么幾種了,而這個Linux? 也是我們在開發(fā)中經(jīng)常用到的,但是你真的會 Linux? 一些高級操作么?比如如何優(yōu)化 Linux 的各種性能。

作為一個技術(shù)博主,了不起不是在創(chuàng)作就是在創(chuàng)作的路上(當(dāng)然偶爾也會有點恰飯文~還指望大家多多支持),今天我們不說數(shù)據(jù)結(jié)構(gòu),我們來說說關(guān)于這個 Linux? ,之前了不起也給大家說過關(guān)于 Linux? 的學(xué)習(xí),以及在 Linux? 下如果編寫 Shell? 腳本,今天我們來看的,不是Linux 下的基礎(chǔ)命令的了,而是一些相對來說比較有意思的內(nèi)容。

Linux

關(guān)于 Linux? 系統(tǒng)是什么東西,我們在這里直接不進行贅述了,畢竟大家已經(jīng)都是作為有經(jīng)驗的開發(fā)人員,就算是沒有工作經(jīng)驗的人,至少也都知道,目前市場上比較流行的操作系統(tǒng),就這么幾種了,而這個Linux? 也是我們在開發(fā)中經(jīng)常用到的,但是你真的會 Linux? 一些高級操作么?比如如何優(yōu)化 Linux 的各種性能。

Linux 的性能優(yōu)化

說實話,干開發(fā)的,說到性能優(yōu)化,那可不單單只是對于 Linux 來進行,而是針對各個方面的內(nèi)容,比如::

程序設(shè)計、編程語言,再到系統(tǒng)、存儲、網(wǎng)絡(luò)等各種 底層基礎(chǔ)設(shè)施的方方面面,每一個組件都有可能出問題,而且很有可能多個組件同時出問題。

了不起之前也說了關(guān)于這個 SQL? 方面的優(yōu)化,我們今天只是來說這個 Linux 的性能優(yōu)化的。

要說性能優(yōu)化,肯定得說性能指標(biāo),那么性能指標(biāo)指的是什么呢?

性能指標(biāo):“高并發(fā)”和“響應(yīng)快”是從應(yīng)用負載的視角來考察性能,直接影響了產(chǎn)品終端的用戶體驗。也正對應(yīng)著性能優(yōu)化的兩個核心指標(biāo)——“吞吐”和“延時”。

Linux 性能優(yōu)化-CPU

既然說到 CPU 的性能優(yōu)化,那么首先我們要知道一個概念,那就是平均負載率。

平均負載率是什么呢?

平均負載是指單位時間內(nèi),系統(tǒng)處于 可運行狀態(tài) 和 不可中斷狀態(tài) 的平均進程數(shù),也就是平均活躍進程數(shù),它和 CPU 使用率并沒有直接關(guān)系。

切記,這個平均負載率不是說 CPU 的使用率,而是平均活躍進程數(shù)。

至于這個可運行進程呵呵這個不可終端狀態(tài)進程遷就更簡單了。

  • 可運行狀態(tài)的進程

是指正在使用 CPU? 或者正在等待 CPU? 的進程,也就是我們常用 ps? 命令看到的,處于 R? 狀態(tài)(Running? 或 Runnable)的進程

  • 不可中斷狀態(tài)的進程

是正處于內(nèi)核態(tài)關(guān)鍵流程中的進程,并且這些流程是不可打斷的, 比如最常見的是等待硬件設(shè)備的 I/O 響應(yīng),也就是我們在 ps? 命令中看到的 D? 狀態(tài) (Uninterruptible Sleep?,也稱為 Disk Sleep)的進程。

那么我們應(yīng)該怎么取查看系統(tǒng)的負載呢?

uptime

圖片

結(jié)果就是上面的圖,那么都代表了什么意思呢?

17:17:34 // 當(dāng)前時間
up 8 days // 系統(tǒng)運行時間
3 users // 正在登錄用戶數(shù)
load average: 0.16, 0.12, 0.17 //三個數(shù)字呢,依次則是過去 1 分鐘、5 分鐘、15 分鐘的平均負載

如果 1 分鐘、5 分鐘、15 分鐘的三個值基本相同,或者相差不大,那就說明系統(tǒng)負載很平穩(wěn)。

如果 1 分鐘的值遠小于 15 分鐘的值,就說明系統(tǒng)最近 1 分鐘的負載在減少,而過去 15 分鐘內(nèi)卻有很大的負載。

如果 1 分鐘的值遠大于 15 分鐘的值,就說明最近 1 分鐘的負載在增加,這種 增加有可能只是臨時性的,也有可能還會持續(xù)增加下去,所以就需要持續(xù)觀察。一旦 1 分鐘的平均負載接近或超過了 CPU 的個數(shù),就意味著系統(tǒng)正在發(fā)生過載的問題,這時就 得分析調(diào)查是哪里導(dǎo)致的問題,并要想辦法優(yōu)化了。

其實總結(jié)起來就很簡單,如果 load average 參數(shù)三個參數(shù)區(qū)別不大,那么就是很平穩(wěn),如果第一個小于第三個并且差值很大,那么負載很大,如果第一個值遠大于第三個只,那么就得需要排查一下,會不會出現(xiàn)超出負載的狀況了。

那么這個平均負載什么時候是最合適的呢?

其實這個平均負載最合適的狀態(tài)就是和 CPU? 的個數(shù)持平,怎么查看 CPU 的個數(shù)呢?

cat /proc/cpuinfo | grep 'processor' | wc -l
8

我們可以看到,這個邏輯 CPU 的個數(shù)是 8個,

當(dāng)平均負載比 CPU 個數(shù)還大的時候,系統(tǒng)已經(jīng)出現(xiàn) 了過載。在觀察負載數(shù)據(jù)時,我們有三個時間點的數(shù)據(jù),因此 都要看。三個不同時間間隔的平均值,其實給我們提供了,分析系統(tǒng)負載趨勢的 數(shù)據(jù)來源,讓我們能更全面的理解目前的負載狀況。

當(dāng)平均負載高于 CPU 數(shù)量 70% 的時候,你就應(yīng)該分析排查負載高的問題了(70% 這個數(shù)字并不是絕對的,最推薦的方法)。

其實 Linux 也是有很多的系統(tǒng)壓力測試工具的。

比如:sysstat 工具,就是,用來監(jiān)控和分析系統(tǒng)的性能。

至于工具怎么用,了不起在這里就不多做介紹了,畢竟這個內(nèi)容不是咱們今天想說的。

其實主要就是來定位哪個異常的進程,然后吧這個異常的線程直接給他干掉,先保證 Linux 的正常,然后在找這個異常進程出現(xiàn)的原因,最終解決掉這個問題。

CPU 使用率

上面我們說到了這個 CPU? 使用率,那么什么是 CPU 使用率呢?

CPU 使用率 = 1- (空閑時間/總 CPU 時間)

其實還可以使用 top 命令來查看系統(tǒng)總體的CPU和內(nèi)存使用情況,以及各個進程的資源使用情況。

知道怎么通過 CPU? 來優(yōu)化 Linux 性能了么?學(xué)會了么?

責(zé)任編輯:武曉燕 來源: Java極客技術(shù)
相關(guān)推薦

2020-05-22 08:11:48

線程池JVM面試

2021-01-01 09:03:44

故障HAProxy服務(wù)器

2022-09-06 07:57:10

生命周期SpringIoC

2021-03-24 10:25:24

優(yōu)化VUE性能

2023-03-08 07:46:53

面試官優(yōu)化結(jié)構(gòu)體

2021-08-02 08:34:20

React性能優(yōu)化

2021-12-02 08:19:06

MVCC面試數(shù)據(jù)庫

2022-11-15 17:45:46

數(shù)據(jù)庫MySQL

2025-03-04 08:06:17

2022-02-11 19:06:29

MySQL索引面試官

2025-02-27 00:08:24

2024-08-05 01:26:54

2022-10-10 12:31:37

服務(wù)器性能

2020-09-17 17:53:12

面試ArrayList數(shù)組

2020-08-03 07:04:54

測試面試官應(yīng)用程序

2025-03-26 01:25:00

MySQL優(yōu)化事務(wù)

2024-03-07 17:21:12

HotSpotJVMHot Code

2019-12-02 10:51:11

Redis存儲系統(tǒng)

2021-09-28 13:42:55

Chrome Devwebsocket網(wǎng)絡(luò)協(xié)議

2022-07-13 17:47:54

布局Flex代碼
點贊
收藏

51CTO技術(shù)棧公眾號