我有一个运行在Cloud
Linux 6.6 x86_64标准上的托管VPS.
它有几个使用CPanel运行MySQL,PHP和Apache的网站.
我正在研究一个需要管理PID并检测其状态的PHP系统.
我在MysqL数据库上定义了一个smallint字段(2个字节)来存储PID.
但今天,我注意到一些奇怪的东西:
该服务“正在行动”,并表示该进程在实际完成任务时未运行.
我查了一下,进程的PID值高达997282(迄今为止最高).
我试图在谷歌上看这个,没有任何帮助我.
我只找到了关于文件/ proc / sys / kernel / pid_max的信息,我用它来读取它并从那里获得最大PID,即1048576.
这是正常的PID超过65535?
有点无关:当PID超过10000时,服务器是否会重启?
您可能需要的任何其他信息,我愿意提供一个没有秘密泄露的特定点.
解决方法
PID被回收.当一个进程退出其PID时,可以稍后由另一个进程使用,因此您不会“耗尽”或仅需要重新启动,因为存在接近最大值的PID但是请参阅下面的…
除非有必要,否则我不会修改此sysctl参数;例如使用大量短期进程或具有长时间运行进程的大量多线程应用程序在繁忙的系统上工作.
通常我设置为99999或在某些情况下,999999 …
在一个值得注意的案例中,我有一个数据库服务器用完了进程ID. PID平均耗尽了9,000-10,000个并发数据库连接.每个线程产生多个线程,达到操作系统中配置的32,768限制.由于运行队列较高,这会提高系统平均负载.
提高PID最大值可以减轻压力.
编辑:
如果这是VPS,我认为主机的pid_max值很高,因为PID在系统上的guest虚拟机之间共享.它可能提供净空.