在Linux系统中,可以使用以下方法来获取CPU和内存使用率:
/proc/stat
文件:该文件提供了有关系统CPU的统计信息。可以读取该文件并解析其中的数据来计算CPU使用率。top
命令:在终端中运行top
命令,然后按下1
键可以查看每个CPU核心的使用率。/proc/meminfo
文件:该文件包含了有关系统内存的信息,包括总内存、可用内存、已使用内存等。可以读取该文件并解析其中的数据来计算内存使用率。free
命令:在终端中运行free
命令,可以查看系统的内存使用情况,包括总内存、已使用内存、可用内存等。以下是一个示例代码,演示如何在C语言中获取CPU和内存使用率:
#include <stdio.h>
#include <stdlib.h>
// 获取CPU使用率
float get_cpu_usage() {
FILE* file = fopen("/proc/stat", "r");
if (file == NULL) {
perror("Failed to open /proc/stat");
exit(1);
}
unsigned long long user, nice, system, idle;
if (fscanf(file, "cpu %llu %llu %llu %llu", &user, &nice, &system, &idle) != 4) {
perror("Failed to read CPU usage from /proc/stat");
exit(1);
}
fclose(file);
unsigned long long total = user + nice + system + idle;
unsigned long long used = total - idle;
return (float)used / total * 100.0;
}
// 获取内存使用率
float get_memory_usage() {
FILE* file = fopen("/proc/meminfo", "r");
if (file == NULL) {
perror("Failed to open /proc/meminfo");
exit(1);
}
unsigned long long total, available;
if (fscanf(file, "MemTotal: %llu kB\nMemAvailable: %llu kB", &total, &available) != 2) {
perror("Failed to read memory usage from /proc/meminfo");
exit(1);
}
fclose(file);
unsigned long long used = total - available;
return (float)used / total * 100.0;
}
int main() {
float cpu_usage = get_cpu_usage();
float memory_usage = get_memory_usage();
printf("CPU Usage: %.2f%%\n", cpu_usage);
printf("Memory Usage: %.2f%%\n", memory_usage);
return 0;
}
请注意,以上代码仅适用于Linux系统,并且需要以root权限运行。在实际应用中,可能需要根据具体情况进行适当的修改和优化。
腾讯云相关产品和产品介绍链接地址:
云+社区沙龙online第5期[架构演进]
云+社区技术沙龙[第17期]
Techo Day
云原生正发声
DBTalk
腾讯技术开放日
Elastic 中国开发者大会
Elastic 实战工作坊
Elastic 实战工作坊
Elastic 中国开发者大会
领取专属 10元无门槛券
手把手带您无忧上云