sar 도구를 사용하여 시스템 성능 병목 현상 감지
sar 명령은 UNIX/Linux 시스템 활동 정보를 수집, 보고 또는 저장하는 데 사용됩니다. 선택한 카운터를 운영 체제의 /var/log/sa/sadd 파일에 저장합니다. 수집된 데이터에서 서버에 대한 많은 정보를 얻을 수 있습니다:
- CPU 사용량
- 메모리 페이지 및 사용량
- 네트워크 I/O 및 전송 통계
- 프로세스 생성 활동
- 모든 블록 장치 활동
- 초당 중단 횟수 및 그 이상
sar 명령의 출력을 사용하여 서버 병목 현상을 식별할 수 있습니다. 하지만 sar 명령으로 제공되는 정보를 분석하기 어려울 수 있으므로 kSar 도구를 사용하세요. kSar 도구는 sar 명령의 출력을 기간을 기준으로 이해하기 쉬운 차트로 표시할 수 있습니다.
sar, sa1 및 sa2 명령은 모두 sysstat 패키지의 일부입니다. Linux에 포함된 성능 모니터링 도구 모음입니다.
- sar: 데이터 표시
- sa1 및 sa2: 나중에 분석할 수 있도록 데이터를 수집하고 저장합니다. sa2 쉘 스크립트는 /var/log/sa 디렉토리에 일일 보고서를 작성합니다. sa1 쉘 스크립트는 일일 시스템 활동 정보를 바이너리 데이터 형식으로 파일에 기록합니다.
- sadc - 시스템 활동 데이터 수집기. sa1 및 sa2 스크립트를 수정하여 다양한 옵션을 구성할 수 있습니다. 이들은 다음 디렉토리에 있습니다:
- /usr/lib64/sa/sa1(64비트) 또는 /usr/lib/sa/sa1(32비트) - sadc를 호출하여 보고서를 /var/log/sa/에 기록합니다. sadX 형식.
- /usr/lib64/sa/sa2(64비트) 또는 /usr/lib/sa/sa2(32비트) - sar를 호출하여 보고서를 /var/log/sa/에 기록합니다. sarX 형식.
在一个基于 CentOS/RHEL 的系统上,输入如下的 yum 命令[1] 去安装 sysstat:
# yum install sysstat
示例输出如下:
Loaded plugins: downloadonly, fastestmirror, priorities, : protectbase, security Loading mirror speeds from cached hostfile * addons: mirror.cs.vt.edu * base: mirror.ash.fastserv.com * epel: serverbeach1.fedoraproject.org * extras: mirror.cogentco.com * updates: centos.mirror.nac.net 0 packages excluded due to repository protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package sysstat.x86_64 0:7.0.2-3.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved ==================================================================== Package Arch Version Repository Size ==================================================================== Installing: sysstat x86_64 7.0.2-3.el5 base 173 k Transaction Summary ==================================================================== Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 173 k Is this ok [y/N]: y Downloading Packages: sysstat-7.0.2-3.el5.x86_64.rpm | 173 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : sysstat 1/1 Installed: sysstat.x86_64 0:7.0.2-3.el5 Complete!
编辑 /etc/sysconfig/sysstat 文件去指定日志文件保存多少天(最长为一个月):
# vi /etc/sysconfig/sysstat
示例输出如下 :
# keep log for 28 days # the default is 7 HISTORY=28
保存并关闭这个文件。
默认的 cron 作业位于[2] /etc/cron.d/sysstat:
# cat /etc/cron.d/sysstat
示例输出如下:
# run system activity accounting tool every 10 minutes */10 * * * * root /usr/lib64/sa/sa1 1 1 # generate a daily summary of process accounting at 23:53 53 23 * * * root /usr/lib64/sa/sa2 -A
使用一个文本编辑器去编辑 /etc/cron.d/sysstat 文件,比如使用 vim 命令,输入如下:
# vi /etc/cron.d/sysstat
像下面的示例那样更新这个文件,以记录所有的硬盘统计数据(-d 选项强制记录每个块设备的统计数据,而 -I 选项强制记录所有系统中断的统计数据):
# run system activity accounting tool every 10 minutes */10 * * * * root /usr/lib64/sa/sa1 -I -d 1 1 # generate a daily summary of process accounting at 23:53 53 23 * * * root /usr/lib64/sa/sa2 -A
在 CentOS/RHEL 7.x 系统上你需要传递 -S DISK 选项去收集块设备的数据。传递 -S XALL 选项去采集如下所列的数据:
- 磁盘
- 分区
- 系统中断
- SNMP
- IPv6
# Run system activity accounting tool every 10 minutes */10 * * * * root /usr/lib64/sa/sa1 -S DISK 1 1 # 0 * * * * root /usr/lib64/sa/sa1 600 6 & # Generate a daily summary of process accounting at 23:53 53 23 * * * root /usr/lib64/sa/sa2 -A # Run system activity accounting tool every 10 minutes
保存并关闭这个文件。
输入如下命令:
chkconfig sysstat on service sysstat start
示例输出如下:
Calling the system activity data collector (sadc):
对于 CentOS/RHEL 7.x,运行如下的命令:
# systemctl enable sysstat # systemctl start sysstat.service # systemctl status sysstat.service
示例输出:
● sysstat.service - Resets System Activity Logs Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled) Active: active (exited) since Sat 2018-01-06 16:33:19 IST; 3s ago Process: 28297 ExecStart=/usr/lib64/sa/sa1 --boot (code=exited, status=0/SUCCESS) Main PID: 28297 (code=exited, status=0/SUCCESS) Jan 06 16:33:19 centos7-box systemd[1]: Starting Resets System Activity Logs... Jan 06 16:33:19 centos7-box systemd[1]: Started Resets System Activity Logs.
使用 sar 命令去显示操作系统中选定的累积活动计数器输出。在这个示例中,运行 sar 命令行,去实时获得 CPU 使用率的报告:
# sar -u 3 10
示例输出:
Linux 2.6.18-164.2.1.el5 (www-03.nixcraft.in) 12/14/2009 09:49:47 PM CPU %user %nice %system %iowait %steal %idle 09:49:50 PM all 5.66 0.00 1.22 0.04 0.00 93.08 09:49:53 PM all 12.29 0.00 1.93 0.04 0.00 85.74 09:49:56 PM all 9.30 0.00 1.61 0.00 0.00 89.10 09:49:59 PM all 10.86 0.00 1.51 0.04 0.00 87.58 09:50:02 PM all 14.21 0.00 3.27 0.04 0.00 82.47 09:50:05 PM all 13.98 0.00 4.04 0.04 0.00 81.93 09:50:08 PM all 6.60 6.89 1.26 0.00 0.00 85.25 09:50:11 PM all 7.25 0.00 1.55 0.04 0.00 91.15 09:50:14 PM all 6.61 0.00 1.09 0.00 0.00 92.31 09:50:17 PM all 5.71 0.00 0.96 0.00 0.00 93.33 Average: all 9.24 0.69 1.84 0.03 0.00 88.20
其中:
- 3 表示间隔时间
- 10 表示次数
查看进程创建的统计数据,输入:
# sar -c 3 10
查看 I/O 和传输率统计数据,输入:
# sar -b 3 10
查看内存页面统计数据,输入:
# sar -B 3 10
查看块设备统计数据,输入:
# sar -d 3 10
查看所有中断的统计数据,输入:
# sar -I XALL 3 10
查看网络设备特定的统计数据,输入:
# sar -n DEV 3 10 # sar -n EDEV 3 10
查看 CPU 特定的统计数据,输入:
# sar -P ALL # Only 1st CPU stats # sar -P 1 3 10
查看队列长度和平均负载的统计数据,输入:
# sar -q 3 10
查看内存和交换空间的使用统计数据,输入:
# sar -r 3 10 # sar -R 3 10
查看 inode、文件、和其它内核表统计数据状态,输入:
# sar -v 3 10
查看系统切换活动统计数据,输入:
# sar -w 3 10
查看交换统计数据,输入:
# sar -W 3 10
查看一个 PID 为 3256 的 Apache 进程,输入:
# sar -x 3256 3 10
sar 和 sadf 提供了基于命令行界面的输出。这种输出可能会使新手用户/系统管理员感到无从下手。因此,你需要使用 kSar,它是一个图形化显示你的 sar 数据的 Java 应用程序。它也允许你以 PDF/JPG/PNG/CSV 格式导出数据。你可以用三种方式去加载数据:本地文件、运行本地命令、以及通过 SSH 远程运行的命令。kSar 可以处理下列操作系统的 sar 输出:
- Solaris 8, 9 和 10
- Mac OS/X 10.4+
- Linux (Systat Version >= 5.0.5)
- AIX (4.3 & 5.3)
- HPUX 11.00+
访问 官方[3] 网站去获得最新版本的源代码。使用 wget[4] 去下载源代码,输入:
$ wget https://github.com/vlsi/ksar/releases/download/v5.2.4-snapshot-652bf16/ksar-5.2.4-SNAPSHOT-all.jar
首先要确保你的机器上 JAVA jdk[5] 已安装并能够正常工作。输入下列命令去启动 kSar:
$ java -jar ksar-5.2.4-SNAPSHOT-all.jar
kSar welcome screen
接下来你将看到 kSar 的主窗口,和有两个菜单的面板。
kSar - the main window
左侧有一个列表,是 kSar 根据数据已经解析出的可用图表的列表。右侧窗口将展示你选定的图表。
首先,你需要从命名为 server1 的服务器上采集 sar 命令的统计数据。输入如下的命令:
[ server1 ]# LC_ALL=C sar -A > /tmp/sar.data.txt
接下来,使用 scp 命令从本地桌面拷贝到远程电脑上:
[ desktop ]$ scp user@server1.nixcraft.com:/tmp/sar.data.txt /tmp/
切换到 kSar 窗口,点击 “Data” > “Load data from text file” > 从 /tmp/ 中选择 sar.data.txt> 点击 “Open” 按钮。
现在,图表类型树已经出现在左侧面板中并选定了一个图形:
Linux kSar Processes for server1
Linux Disk I/O Stats Using kSar
Linux Memory paging and its utilization stats
放大和缩小
通过移动你可以交互式缩放图像的一部分。在要缩放的图像的左上角点击并按下鼠标,移动到要缩放区域的右下角,可以选定要缩放的区域。返回到未缩放状态,点击并拖动鼠标到除了右下角外的任意位置,你也可以点击并选择 zoom 选项。
了解 kSar 图像和 sar 数据
我强烈建议你去阅读 sar 和 sadf 命令的 man 页面:
$ man sar $ man sadf
使用 sar 命令和 kSar 工具,可以得到内存、CPU、以及其它子系统的详细快照。例如,如果 CPU 使用率在一个很长的时间内持续高于 80%,有可能就是出现了一个 CPU 瓶颈。使用 sar -x ALL 你可以找到大量消耗 CPU 的进程。
mpstat 命令[6] 的输出(sysstat 包的一部分)也会帮你去了解 CPU 的使用率。但你可以使用 kSar 很容易地去分析这些信息。
CPU에 대해 다음 조정을 수행합니다.
- 백그라운드에서 불필요한 프로세스가 실행되고 있지 않은지 확인하세요. Linux[7]에서 불필요한 서비스를 모두 끄세요.
- cron[8]을 사용하여 사용량이 적은 시간에 작업(예: 백업)을 실행하세요.
- top 및 ps 명령[9]을 사용하여 중요하지 않은 모든 백그라운드 작업/서비스를 찾으세요. 우선순위가 낮은 작업을 조정하려면 renice 명령[10]을 사용하세요.
- taskset 명령을 사용하여 프로세스에서 사용하는 CPU를 설정[11](사용된 CPU 오프로드), 즉 프로세스를 다른 CPU에 바인딩합니다. 예를 들어, CPU #2에서 MySQL 데이터베이스를 실행하고 CPU #3에서 Apache를 실행합니다.
- 시스템이 최신 드라이버와 펌웨어를 사용하고 있는지 확인하세요.
- 가능한 경우 시스템에 CPU를 추가하세요.
- 단일 스레드 애플리케이션(예: Lighttpd 웹 서버 애플리케이션)에는 더 빠른 CPU를 사용하세요.
- 멀티 스레드 애플리케이션(예: MySQL 데이터베이스 서버 애플리케이션)에는 여러 CPU를 사용합니다.
- 여러 컴퓨팅 노드를 사용하고 웹 애플리케이션용 로드 밸런서를 설정하세요[12].
isag 명령은 sar 명령의 이전 실행에서 바이너리 파일에 저장된 시스템 활동 데이터를 그래픽으로 표시합니다. isag 명령은 sar을 참조하고 해당 데이터를 추출하여 그래프를 그립니다. kSar에 비해 isag에는 옵션이 더 적습니다.
Fig.06: isag CPU 사용률 그래프
위 내용은 sar 도구를 사용하여 시스템 성능 병목 현상 감지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Linux 시스템은 무단 네트워크 액세스를 방지하기 위해 방화벽에 의존합니다. 이 소프트웨어 장벽은 사전 정의 된 규칙에 따라 데이터 패킷을 허용 또는 차단하는 네트워크 트래픽을 제어합니다. 주로 네트워크 계층에서 작동하면 관리합니다

Linux 시스템이 데스크탑인지 랩톱인지 결정하는 것은 시스템 최적화에 중요합니다. 이 안내서는 시스템 유형을 식별하기위한 간단한 명령을 간략하게 설명합니다. hostnamectl 명령 :이 명령은 시스템의 섀시를 확인하는 간결한 방법을 제공합니다.

Linux 서버의 TCP/IP 연결 수를 조정하기위한 안내서 Linux 시스템은 종종 서버 및 네트워크 응용 프로그램에서 사용됩니다. 관리자는 종종 TCP/IP 연결 수가 상한에 도달하여 사용자 연결 오류에 도달한다는 문제에 직면합니다. 이 기사에서는 Linux 시스템에서 최대 TCP/IP 연결 수를 개선하는 방법을 안내합니다. TCP/IP 연결 번호 이해 TCP/IP (전송 제어 프로토콜/인터넷 프로토콜)는 인터넷의 기본 통신 프로토콜입니다. 각 TCP 연결에는 시스템 리소스가 필요합니다. 활성 연결이 너무 많으면 시스템이 새로운 연결을 거부하거나 속도를 늦출 수 있습니다. 허용되는 최대 연결 수를 늘리면 서버 성능을 향상시키고 동시 사용자를 처리 할 수 있습니다. 현재 Linux 연결 제한 수를 확인하십시오 설정 설정

SVG (확장 가능한 벡터 그래픽) 파일은 품질 손실없이 방출 가능성으로 인해 로고 및 일러스트레이션에 이상적입니다. 그러나 PNG (Portable Network Graphics) 형식은 종종 웹 사이트 및 응용 프로그램과 더 나은 호환성을 제공합니다. 이 안내서 d

LiveCode : 교차 플랫폼 개발 혁명 1993 년에 데뷔 한 프로그래밍 언어 인 LiveCode는 모든 사람을위한 앱 개발을 단순화합니다. 높은 수준의 영어와 같은 구문 및 동적 타이핑은 강력한 응용 프로그램을 쉽게 만들 수 있습니다.

이 안내서는 Linux 명령 줄을 통해 오작동하는 USB 장치를 재설정하기위한 단계별 프로세스를 제공합니다. 이러한 명령을 사용하여 응답하지 않거나 연결 해제 된 USB 드라이브 문제 해결이 단순화됩니다. 1 단계 : USB 장치 식별 첫째, i

Linux에서 정적 IP 주소를 일시적으로 설정하는 것은 네트워크 문제 해결 또는 특정 세션 구성에 매우 중요합니다. 이 안내서는 명령 줄 도구를 사용하여이를 달성하는 방법에 대해 자세히 설명합니다.

Linux는 사용자가 시스템과 효율적으로 상호 작용할 수있는 강력한 명령 줄 도구 세트로 유명합니다. 많은 Linux 사용자가 LS, CD 또는 GREP와 같은 일반적인 명령에 익숙하지만 생산성을 단순화하고 향상시킬 수있는 덜 알려져 있지만 매우 유용한 명령 및 바로 가기가 거의 없습니다. "덜 알려진 Linux 명령"에 관한 최신 5 개의 기사를 50 개가 넘는 명령과 함께 공유하게되어 기쁩니다. 당신은 또한 좋아할 수도 있습니다 : 11 개의 거의 알려지지 않은 실제 Linux 명령-1 부 거의 알려지지 않은 Linux 명령-Part 2 거의 알려지지 않은 Linux 명령-파트 3 거의 알려지지 않은 유효한 Linux 명령


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경