首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx(5):进程绑定CPU:nginx源码里给你刨功能出来

逻辑CPU:一般情况,我们认为一颗CPU可以有多核,加上intel的超线程技术(HT),可以在逻辑上再分一倍数量的CPU core出来; 逻辑CPU数量 = 物理CPU数量 x CPU cores x...= 进程独占CPU,要独占,可以去设置,或者你给服务器上每个进程都安排好核,只要你核够多,CPU就不会切换进程,因为没有进程给它切换。...如在一个四核的服务器上,0001表示第一个第一个逻辑处理器,0010表示第二个逻辑处理器,以此类推,在实际编程过程中不应该直接修改位掩码,而是使用系统提供的操作宏。...另外,CPU亲和性具有遗传性,即设置了CPU亲和性的进程会将这些CPU亲和性传递给他们派生的子进程,当然,子进程可以调用系统提供的接口,重新对CPU亲和性进行设置。...NGX_LOG_ALERT, log, ngx_errno, "sched_setaffinity() failed"); } } 函数的功能很简单,地位到高位遍历

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

让我的服务器变成了别人的挖矿工具

但是,好奇心驱使我去探究一下,到底是什么原因导致了服务器连接不上,而不是直接重装服务器。那样的话,就太没意思了。...直接,就出来了一堆结果,挖矿病毒。 我去,听这名字,难不成就是传说中的比特币挖矿?不管那么多了,先解决当前的问题吧。...可以发现它是昨天晚上九点开始运行起来的。怪不得,昨天下午下班前还能用,今天就不能用了。 还可以通过 ls -l proc/{进程号}/exe 命令查看它具体的位置。最后发现都在 /etc 目录下。...哼哼,颜色上就能看出来他们是一伙的。 然而,我并没有着急把它们清除掉,却突然脑子一抽,想研究一下它们的脚本。因为我看到有一个 update.sh ,里边肯定写了一些病毒执行相关的命令。...我估计,能看服务器都被病毒攻击了,还有闲情研究人家是怎么制作病毒的,我是第一个吧。。 ?

1.1K20

Prometheus监控进程状态(Process-Exporter)

如名所示,Process-Exporter就是用来监控进程的,其中一项能力,便是监控进程的状态。使用起来也简单。...Process-Exporter的Github release版本列表,下载最新发布版本的适合你机器的那一项,这里我选择的是process-exporter-0.5.0.linux-amd64.tar.gz,下载好后rz到你的服务器上去...(如果你的服务器可以连接外网,那么也可以直接用wget命令下载到服务器上),然后解压即可使用: $ wget https://github.com/ncabatoff/process-exporter/...: 从这里也能看出来,process-exporter会给出你设置要观察的进程关键词搜索到的在不同状态下的所有进程的数量,比如这里我观察的两个进程均在“state="Sleeping"”状态下才有数值...注意,如果你kill了观察的进程,或者被其他什么原因kill掉了,那么这里采集到的数据每个状态下都会变成0,所以如果要监控告警的话,判断某些状态都为0,就可以视为进程挂掉了。

4.2K10

Linux运维之如何使用ss命令代替netstat

前言 在运维和管理 Linux 服务器的时候,我们最常用的一个命令就是 netstat,我常用这个命令来查看当前服务器上有哪些进程正在侦听端口,主要用来诊断网络服务的工作状态。...参数 n 的意思是展示数字格式的 IP 地址,不然会展示主机名称或者是域名,参数 p 的意思显示进程的名字(有时候显示不出来),l 的意思,是关注处于 LISTENING 状态的 socket。...通过如上命令,我们看到了系统所有打开的 socket,如果你启动一种网络服务也好,自己开发一个网络服务打开端口也好,通过这个命令都应该能看到自己打开的端口,如果看不到,应该就是没有能够正确打开端口,要好好查询是什么原因...大体上,我们能看出来,主要是 net-tools 这个包,将要被 iproute 这个包给替换。...://serverfault.com/questions/633087/where-is-the-statement-of-deprecation-of-ifconfig-on-linux 也有原理层面

1.1K21

MySQL在非双1场景下的丢数据问题

开发哥们最近遇到个问题,说是Django ORM日志上看数据已经提交了,但是服务器突然断电,重启后发现之前写入的数据丢失了。 让我帮看看什么原因导致的。...先确保mysqld单进程运行(如果是mysqld_safe守护的请先kill掉mysqld_safe进程,防止我们后面kill -9的时候,mysqld会自动再次拉起mysqld进程)(systemd守护的也会自动拉起...wang | M || 2 | wang | F |+----+------+------+2 rows in set (0.00 sec)脚本模拟:# a.sh脚本# 先写入数据,然后查出来...,这里的进程号替换成自己机器上的脚本执行过程如下:$ sh a.shmysql: [Warning] Using a password on the command line interface can...生产上主节点切记请设置为双一,库一般可以宽松点,例如设置为: sync_binlog=100innodb_flush_log_at_trx_commit=2

14920

迷之 crontab 异常:不运行、不报错、无日志

这个我就比较好奇了,按理说 a.log 应该是能拿到所有的标准输出和标准错误的,究竟什么原因导致 crontab 既不执行又不报错呢? ?...于是,我尝试看看 /var/log 下有没有 crontab 的执行日志,看了下服务器居然没开启 cron.log,由于非管理员没权限修改任何配置或设置,于是我在本地 WSL 里用 Ubuntu 把问题复现了下...重启rsyslog #sudo /etc/init.d/rsyslog restart sudo service rsyslog restart sudo service cron restart 虽然能看到...另外需要注意的是通过()或管道fork出来的子进程,继承了父进程的所有环境变量,和平时bash xxx.sh或者....,咱们如何让日志输出以及代码如何改写,到最后的 root cause 都分析了一遍,希望能对大家有所启发和参考。

5.7K60

【云安全最佳实践】分享云服务器遭遇SYN泛洪攻击处理方式

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到我们使用netstat -p命令进行对网络连接所处程序的查询,发现无法正确的查看,因此我们可以断定攻击者的水平还算是可以的,并且我们通过这些简单的命令很难查出背后的原因了...图片因为只有一个异常连接能够看到进程名,于是我们顺藤摸瓜找到该程序的位置图片该程序的位置在/tmp目录下,但是这个服务器只有我一个人使用,并未下载和添加该程序,因此该程序来源不明,对于该程序的介绍(来自...3.1 ps命令查找恶意进程并终止什么都没说,一位很有经验的老前辈上来就让我执行这几部操作ps -ef|egrep "mass|scan"停止相关进程找到对应的文件,删除虽然不知道为什么,但是还是照做了...,当停止进程的时候,发现网络和内存的情况一下子就好了图片3.2 删除异常用户和文件按照前辈说的,再将黑客创建的用户和用户目录都删除掉,还有异常的脚本也都删除掉3.3 缘由探究在那位老前辈的指引下,服务器的网络和内存情况已经得到修复...还有就是加深自己的计算机网络知识,遇到问题要知道是什么原因,并且尝试着去解决。

1.1K20

明明还有大量内存,为啥报错“无法分配内存”?

导致大家并没有第一时间往进程数上想。所以才有了这么复杂曲折的排错过程,以至于在群里讨论才得以解决。 于是我想深入到内核里看看,报错到底是如何提示出来这么一个不恰当的错误提示的。...然后顺便咱们也来了解了解创建进程的过程。 读者的线上服务器的操作系统是 CentOS 7.8,我查了一下对应的内核版本是 3.10.0-1127。...而不管 alloc_pid 内存究竟是因为什么原因产生的错误。 我们来查看一下 ENOMEM 的定义。它代表的是 Out of memory 的意思。...一个 PID 是在容器命名空间中的进程号,一个是根命名空间(宿主机)中的进程号。 这也符合我们平时的经验。在容器中的每一个进程其实我们在宿主机中也都能看到。...但是我觉得最根本的方法还是要揪出来为啥系统中会出现这么多的进程(线程),然后把它干掉。默认情况下的两三万个进程数对于绝大多数的服务器来说已经是一个过于庞大的数字了,连这个数都超过了,一定是不合理的。

1.5K20

线上服务内存OOM问题定位三板斧

是最难定位的问题,不过归根结底,最常见的原因: 本身资源不够 申请的太多 资源耗尽 58到家架构部,运维部,58速运技术部联合进行了一次线上服务内存OOM问题排查实战演练,将内存OOM问题定位三板斧分享出来...题目 某服务器上部署了Java服务一枚,出现了OutOfMemoryError,请问有可能是什么原因,问题应该如何定位?...不妨设服务进程PID为10765(没错,就是CPU占用高的那个倒霉的进程《线上服务CPU100%问题快速定位实战》)。...例如,某一台线上服务器的sshd进程PID是9339,查看 ll /proc/9339/fd ll /proc/9339/task ?...作业 对线上服务器的一台tomcat,查看proc下的fd目录和task目录,特别是对于句柄fd目录的查询,有意想不到的惊喜哟,一定要动手试试哈。

1.9K60

让Linux服务器后台执行任务

,终端挂了,我就和服务器断开连接了,特别不爽,那么有没有办法在终端关闭之后还继续跑着服务器上的 jupyter-notebook 呢,答案肯定是有的 nohup 用 nohup 这个命令,就可以在终端退出连接后服务器上依旧在跑着我们的代码...,此时的输出在 nohup.out 里面 我们可以通过 jobs 命令查看当前后台的任务 但是服务器要是出了什么事,由于什么原因报错了我们是不知道的,因为没有将 stderr 输出,因此,我们最好自己输出错误日志...我之前有一个 shell 脚本叫做 kill.sh,可以直接杀死对应的进程,这里贴出来 #!.../bin/bash #根据进程名杀死进程 if [ $# -lt 1 ] then echo "缺少参数:procedure_name" exit 1 fi PROCESS=`ps -ef|...jupyter-notebook ,要是直接跑脚本就会把这个老哥的 jupyter-notebook 也给 kill 了 所以还是得通过进程 ID 号来杀死我们的程序,虽然有点烦,但是挺保险的 $

1.6K20

深入理解 RPC 交互流程

NIC 负责将翻译出来的模拟信号通过网络硬件传递到服务器硬件的 NIC。...服务器的 NIC 再将模拟信号转成字节数据存放到内核为套接字分配的接收缓存中,最终服务器进程接收缓存中读取数据即为源客户端进程传递过来的 RPC 指令消息。...消息用户进程流向物理硬件,又从物理硬件流向用户进程,中间还经过了一系列的路由网关节点。 上图呈现的只是 RPC 一次消息交互的上半场,下半场是一个逆向的过程,服务器进程向客户端进程返回响应数据。...客户端接收到服务器发送过来的 world,马上打印出来。 关闭连接,结束。...就好比你能看到远方有几个人在说话,但是不知道他们在说啥。 ? 下一节我们将放大细节,仔细观察 RPC 客户端服务器之间窃窃私语了什么,它们究竟是在用什么外星语言交流。

85320

软件测试「 高频面试题 」建议收藏!

外部看,性能测试主要关注如下三个指标: 吞吐量:每秒钟系统能够处理的请求数、任务数 响应时间:服务处理一个请求或一个任务的耗时 错误率:一批请求中结果出错的请求所占比例 服务器的角度看,性能测试主要关注...1.查看聚合报告和服务器的资源使用图,检查响应时间,事务成功率,CPU,内存和IO使用率是否达到要求,如果出错率达到了总请求的3%,我们会检查是什么原因导致的,修改好后,重新测试; 2.如果出现了性能瓶颈...,比如响应时间,或者CPU使用率不达标,我们会服务器上导出日志,分析是哪个地方导致响应时间过长,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给代发修复,修复好了就进行回归测试。...根据性能测试结果先检查看下是否是服务器带宽存在问题,如果带宽存在瓶颈,则会考虑增加带宽或者压缩传输数据,如果带宽没有问题的话,我们会服务器上导出日志,开发一起讨论分析是哪个地方导致响应时间过长,确定问题后...CPU使用率不达标,我们会服务器上导出日志,分析是哪个地方导致CPU使用率不达标,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。

84510

字节跳动php面试题(三)

写一下,我说我是C/C++方向的,具体什么给忘记了) 你一般手机APP是怎么安装的(我说是在应用市场直接安装的…他说你有没有用install啥啥啥安装,我…没有,噗…) 如果有很大的数据,你需要把他读取出来...那么你怎么读取它可以提高效率(其实这个题我没太听懂,现在也没懂什么意思,一会儿问问大神去) 你一般都是在Linux上写代码吧,那你说一下gdb调试的原理,比如我们打一个断点,他的原理是什么(其实打断点就是一个进程给另一个进程发送了一个信号...一个字符串查找第一个只出现一次的字符,我使用的是hashtable,面试官问如果不是encode的呢,我就说不是很了解,还问如果字符串特别大呢 你投的测开岗,对微信系统设计测试用例,我对系统这个概念很迷,面试官可能看我真的很迷...,然后就说你测一下微信聊天功能吧,我最后只说了一些功能测试性能测试…反正说的很不好很不好 后来就问了为什么投测试不投开发(这真的是一个难以回答的问题,有时候选择一个事情其实是没有什么原因的),你觉得你投开发的瓶颈是什么

57510

数据库持久连接

搜PHP长链接把这个搜出来了,2006年的帖子比较久远了,希望对你有帮助! 转自http://bbs.phpchina.com/forum.php?...对于一个多进程服务器,其典型特征是有一个父进程和一组子进程协调运行,其中实际生成 web 页面的是子进程。每当客户端向父进程提出请求时,该请求会被传递给还没有被其它的客户端请求占用的子进程。...它使得每个子进程在其生命周期中只做一次连接操作,而非每次在处理一个页面时都要向 SQL 服务器提出连接请求。这也就是说,每个子进程将对服务器建立各自独立的永久连接。...例如,如果有 20 个不同的子进程运行某脚本建立了永久的 SQL 服务器永久连接,那么实际上向该 SQL 服务器建立了 20 个不同的永久连接,每个进程占有一个。...例如在永久连接中使用数据表锁时,如果脚本不管什么原因无法释放该数据表锁,其随后使用相同连接的脚本将会被永久的阻塞,使得需要重新启动 httpd 服务或者数据库服务。

54010

Validation of viewstate MAC failed 解决办法

为了解决问题我继续收集资料,不经意的发现了一个网页里讲到一个Blog系统NET1.1升级到NET2后,之前所生成的所有cookies将会失效,因为NET2和NET1使用的machineKey不一样。...按照MSDN的标准说法:“对密钥进行配置,以便将其用于对 Forms 身份验证 Cookie 数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证。”...如果单台服务器当然没问题,但是如果多台服务器负载均衡,machineKey还采用动态生成的方式,每台服务器上的machinekey值不一致,就导致加密出来的结果也不一致,不能共享验证和ViewState...,所以对于多台服务器负载均衡的情况,一定要在每台站点配置相同的machineKey。...先分析什么原因导致了这个错误的发生,禁用掉EnableViewStateMac验证是可以解决问题,但这不是根本的,起码是牺牲了一定的安全性! 注意:实际使用时报错 ?

1.5K100

这8种命令都不会,还算什么Linux运维!

cached) +buffers/cache 的内存数: 2624 (等于第1行的 free + buffers + cached) 注:此处的内存数在用上面式子计算后,在大小上有一点点出入(还不知道是什么原因...系统平均负载被定义为在 特定时间间隔内运行队列中的平均进程数目 。...如果一个进程满足以下条件则其就会位于运行队列中: 它没有在等待I/O操作的结果 它没有主动进入等待状态(也就是没有调用'wait') 没有被停止(例如:等待终止) 一般来说,每个CPU内核当前活动进程数不大于...07 查看进程 杀死所有含worker的进程 08 查看端口占用 参数: -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项...提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到 作者:Geek小A 来源:http://openskill.cn/article/278

55770
领券