linux服务器qps查询,查看当前linux服务器的QPS

QPS:每秒查询率(QPS,Queries-per-second)是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

一、查看服务器QPS

这里使用的nginx,cd到nginx的access.log目录,查看日志文件。统计当前时间每秒的请求数。

日志格式:127.0.0.1 - - [12/Nov/2020:15:40:29 +0800] "GET /index.html HTTP/2.0" 200 11564 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36" "-" -

命令:#最新

tail -500 access.log | awk '{print substr($4,2,20)}'| uniq -c

#全部 cat access.log | awk '{print substr($4,2,20)}'| uniq -c

二、查看某接口的QPS

grep 接口地址,如接口:index.php

命令:tail -500 access.log | grep index.php | awk '{print substr($4,2,20)}'| uniq -c

7e7e27f2a35a5df8c8eee99106ea21e8.png

匹配过程:

tail 、 cat : 查看文件

awk '{print $4}' : 匹配到日志中[12/Nov/2020:15:40:29

awk '{print substr($4,2,20)}':匹配到12/Nov/2020:15:40:29

uniq -c : 查看当前重复的行列并统计

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取服务器性能指标-QPS,可以使用以下代码: ```c++ #include <iostream> #include <cstdio> #include <chrono> #include <thread> #include <atomic> #include <vector> #include <string> #include <algorithm> #include <cstring> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> void send_request(int sockfd) { std::string request("GET / HTTP/1.0\r\n\r\n"); send(sockfd, request.c_str(), request.size(), 0); } void thread_func(const char* ip, int port, std::atomic<int>& count) { int sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) { std::cout << "create socket failed\n"; return; } struct sockaddr_in serv_addr{}; memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = inet_addr(ip); serv_addr.sin_port = htons(port); if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) == -1) { std::cout << "connect failed\n"; return; } while (true) { send_request(sockfd); char buf[1024]; int len = recv(sockfd, buf, sizeof(buf), 0); if (len == -1) { std::cout << "recv failed\n"; break; } else if (len == 0) { std::cout << "server closed\n"; break; } count++; } close(sockfd); } int main() { std::vector<std::thread> threads; std::atomic<int> count{0}; const char* ip = "127.0.0.1"; int port = 80; int thread_num = 10; int seconds = 10; for (int i = 0; i < thread_num; ++i) { threads.emplace_back(thread_func, ip, port, std::ref(count)); } std::this_thread::sleep_for(std::chrono::seconds(seconds)); for (auto& t : threads) { t.join(); } std::cout << "QPS: " << count / (double)seconds << '\n'; return 0; } ``` 该程序会创建多个线程,每个线程不断向服务器发送请求,并计算总共发送的请求数量,最后根据时间计算出 QPS 值。 需要注意的是,该程序只适用于 HTTP 协议的服务器,若要测试其他协议的服务器,需要修改发送请求的内容和解析响应的方式。同时,该程序也需要在 Linux 环境下编译运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值