我有一个webapp,它托管在运行连接到MySQL数据库的php脚本的apache服务器上。
我知道apache会在收到请求时创建线程和进程来运行不同的脚本,但是当多个用户尝试运行调用存储过程的脚本时,我遇到了问题:服务器的一个核心开始运行在另一个人只有0%的情况下运行率为90%,而当一个人同时使用它时,这个过程特别缓慢。
有没有办法充分发挥处理器的潜力?
答案 0 :(得分:3)
每个MySQL连接在mysqld
进程中启动自己的线程。但是一个MySQL连接被固定到一个线程。 MySQL不支持为单个连接使用多个内核。
Mysqld还始终运行许多其他帮助程序线程。连接管理器线程,复制线程,死锁检测线程,用于读写的各种InnoDB线程等
有关详细信息,请阅读:
如果您的服务器具有空闲内核,那么可能没有足够的并发工作来安排多个内核上的线程。