Liunx チューニングの実践 -- ソースコードなしでボトルネックポイントを見つけてみる

CPU の一般的なパフォーマンス指標:

使用率、負荷平均、コンテキスト切り替え

1. CPUチューニングの実践

実践 1: ユーザーの CPU 使用率が高い、その理由を調べてコードのボトルネック ポイントを見つける

 実践 1 環境構築:

$ cat /tftpboot/test.sh

!/bin/bash
stress --cpu 1 --timeout 12000

 実践 2: ソフト割り込み si -- CPU 使用率が高い、コードのボトルネックを見つける

ネットワークの理由は別のツールで二重に検証できます。パケットの送受信頻度を確認してください。

nethogs

 実践2の環境構築:

host A(本机):
iperf -s -p 10000
host B:
iperf -c 172.21.92.104 -p 10000 -t 10000

実践 3: CPU 使用率が高い原因を見つける --- IO プレッシャー レベル

 環境構築:

vi test.c

include
include
include
include
include
int main()
{
printf("pid=%d\n", getpid());
char *p = "0123456789\n";
while(1) {
int fd, len;
fd = open("./test.txt", ORDWR|OCREAT|O_APPEND);
if(fd == -1) {
perror("open");
return -1;
}
write(fd, p, strlen(p));
fsync(fd);
close(fd);
}
return 0;
}

CPU チューニングの一般的な方法:

 2. メモリチューニングの練習

パートナー アルゴリズム: 物理メモリの管理機能は、アプリケーションの状態ではなく CPU カーネルの状態で管理され、ブロックあたり 4096 (4kb) バイト、4 つのブロックに分割されます。

スラブ管理メモリ: 小規模メモリ管理

プロセスによって使用されるメモリは、PSS および RSS によって測定できます。

プロセスの Pss を計算します:
$ cat /proc/1/smaps | grep Pss | awk '{total+=$2}; END {print total}'

おすすめ

転載: blog.csdn.net/weixin_42435798/article/details/126568532