作者:Bruce.D
github:https://github.com/doukoi-BDB
文章底部有【技术社群】,不定更新活动、源码,欢迎来撩~~~
今日主题:
1、nginx 并发怎么看?负载怎么看?
2、预计阅读 7分钟,正文2584字,10张图。
自律给我自由
讲解 如何查看负载 和 并发之前,简单与各位聊几句,这不发现后来群内活跃度有所降低呀。是不是社群没小姐姐都不能吸引各位英雄好汉了,哈哈哈。
言归正传,7月份,我呢面试了几个很不错的上市公司,效果还不错。几乎都收到offer了,也有意外,技不如人吧。然后选择了一家合适自己的(具体怎么合适,下面简单讲解)。
然后每次面试都会复盘总结自己,不管是否ok,每次复盘后,自己的自信就会几何倍的增长,别问为什么,或许大脑的兴奋神经 比较激烈,哈哈哈~~~
通过这几家,有一点我需要告诉各位,基础真的非常非常重要,一个基础能看出你对整个项目的掌握程度,以及对新老技术底层的理解与深度,也可以看出你定位问题的速度。
用我面试某家面试官说的:“ 你基础扎实的人,你底层逻辑挖的很深,解决问题 还真不一样,别人定位问题,直接从底层方面考虑,拆分底层,能够快速结合业务定位发生点,而我们不扎实的,需要根据业务,日志一步一步确定等等 “。
其实有的人或许不认可,反正我是挺认可的,深有体会。具体怎么个体会法,我还真的写不出来,需要大家尝试后,或许都会明白。(说句实话,以前的我也不太认可,与那位聊完,我真的很佩服,我已经准备好上那位大哥的车了,具体原因以后单独来篇文章~~~)
所以我建议大家:
1、研究问题时候,多提 为什么? 一个问题牵扯出的内容,至少你要了解4层起。举个非常简单的例子哈(为什么要用缓存?缓存选择哪个?为什么这么选择?redis 为什么会快?为什么redis 是单线程 ~ 等等,太多了)
2、了解底层时候,不要看完理论,看完配置,就感觉自己懂了,用在实战里,了解实战里面,如果使用的。
3、数据结构多多了解,到底每个数据结构区别点,注意:底层区别。
4、算法很重要,很重要~~~(因为算法能提高你的思维逻辑,亲测有效)
简单聊了都说了这么多,也希望大家多努努力,提升自己眼光,多来点正能量,群里活跃起来,干就完了~~~
并发怎么看???
步入主题,一般查看并发 界面也可以查看:
通过界面查看通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 --with-http_stub_status_module 。
然后配置Nginx.conf,在server里面加入如下内容:
location /Nginxstatus { stub_status on; access_log /usr/local/nginx/logs/status.log; #日志 auth_basic "NginxStatus"; }
配置完后重新加载Nginx后我们可以通过浏览器访问 http://x.x.x.x/Nginxstatus
查看结果说明:
Active connections //当前 Nginx 正处理的活动连接数. server accepts handledrequests //总共处理了387142个连接,成功创建387142次握手,总共处理了4804888个请求. Reading //nginx 读取到客户端的 Header 信息数. Writing //nginx 返回给客户端的 Header 信息数. Waiting //开启 keep-alive 的情况下,这个值等于active-(reading+writing),意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接.
负载怎么查看???
负载(load)时一个linux 机器的重要指标,直观反应了linux 服务器当前状态。
linux 负载高,主要体现在:cpu 的使用、内存使用、io消耗 。
top 命令 ,采用于linux 命令。top命令能够清晰的展现出系统的状态,而且它是实时的监控,按q退出。
Tasks行展示了目前的进程总数及所处状态,要注意zombie,表示僵尸进程,不为0则表示有进程出现问题。
Cpu(s)行展示了当前CPU的状态,us表示用户进程占用CPU比例,sy表示内核进程占用CPU比例,id表示空闲CPU百分比,wa表示IO等待所占用的CPU时间的百分比。wa占用超过30%则表示IO压力很大。
Mem行展示了当前内存的状态,total是总的内存大小,userd是已使用的,free是剩余的,buffers是目录缓存。
Swap行同Mem行,cached表示缓存,用户已打开的文件。如果Swap的used很高,则表示系统内存不足。
在top命令下,按1,则可以展示出服务器有多少CPU,及每个CPU的使用情况
一般而言,服务器的合理负载是CPU核数*2。也就是说对于8核的CPU,负载在16以内表明机器运行很稳定流畅。如果负载超过16了,就说明服务器的运行有一定的压力了。
在top命令下,按shift + "c",则将进程按照CPU使用率从大到小排序,按shift+"p",则将进程按照内存使用率从大到小排序,很容易能够定位出哪些服务占用了较高的CPU和内存。
iostat命令(使用iostat -x 命令来监控io的输入输出是否过大) 仅仅有top命令是不够的,因为它仅能展示CPU和内存的使用情况,对于负载升高的另一重要原因——IO没有清晰明确的展示。 linux提供了iostat命令,可以了解io的开销。
输入iostat -x 1 10命令,表示开始监控输入输出状态,-x表示显示所有参数信息,1表示每隔1秒监控一次,10表示共监控10次。
其中rsec/s表示读入,wsec/s表示每秒写入,这两个参数某一个特别高的时候就表示磁盘IO有很大压力,util表示IO使用率,如果接近100%,说明IO满负荷运转。
分割线
为了让各位方便:交流、交友、技术视频、资源分享、接私活 等等,可以扫下面二维码(wx:xzzs730),备注 “ 技术 ” 就可以通过审核。