
나는 수년 전에 구축된 매우 기본적인 웹 주문 시스템을 가진 클라이언트를 가지고 있습니다. PHP 5.3에서 제대로 실행되는 것을 기반으로 합니다.
이제는 ODBC 브리지(Easysoft)를 통해 (더 오래된) 창고 관리 시스템(Microsoft FoxPro 데이터베이스)에 연결됩니다. 서버 자체는 1.5GB 메모리와 2개의 CPU 코어를 갖춘 MySQL 및 Apache를 실행하는 VPS Centos 5 서버입니다. 저는 이 서버의 성능이 크게 저하되어 최근에 발생한 성능 문제의 원인이 되고 있다고 믿을 만한 이유가 있습니다.
너무 많은 돈을 들이지 않고도 성능 문제를 해결할 수 있는 방법을 어떻게든 찾아야 합니다. 제가 생각해낸 솔루션은 서버를 Windows 2008 R2 서버로 이동하는 것과 관련이 있으며 이에 대한 여러분의 의견을 듣고 싶습니다.
- 데이터베이스가 있는 동일한 서버로 서버를 이동하면 ODBC 브리지가 더 이상 필요하지 않습니다. 현재 이 문제는 때때로 작동을 멈추는데 이것이 성능 문제와 관련이 있다고 생각합니다.
- Windows Server는 현재 8GB의 메모리와 4CPU 코어를 갖추고 있으며 과도한 스트레스를 받지 않습니다.
내 질문:
- 요즘 Windows 2008에서 PHP가 잘 실행되나요? 나는 이것이 실제로 Windows용으로 설계되지 않았다는 것을 이해합니다. 그러나 그러한 기본 PHP 사이트의 경우 충분합니까? (기본이라고 말할 때 프레임워크나 다른 클래스에 의존하지 않는다는 점에서 그것은 순수한 PHP라고 말합니다. 일부 ODBC 함수 호출이 포함된 코드).
- MySQL은 Windows에서 어떻게 작동하나요?
- 이 방법을 사용하려면 Apache를 사용해야 합니까, 아니면 IIS를 사용해야 합니까?
어떤 조언이라도 감사하겠습니다. 가장 좋은 해결책은 아마도 Centos 서버를 업그레이드하는 것이라는 것을 알고 있습니다. 하지만 2GB의 메모리를 추가하려면 클라이언트에게 월 160달러의 비용이 들게 됩니다. 이는 소규모 기업의 경우 작은 변화가 아닙니다.
답변1
PHP/MySQL의 Windows 구현에 대한 개인적인 경험으로 인해 저와 직원, 고객 모두가 고통을 겪었습니다.
- 2008R2에서 PHP에서 많은 메모리 누수 및 성능 문제를 발견했습니다.
- MySQL은 Windows에서 엄청난 양의 메모리를 사용합니다.
- 악용에 대한 보안 업데이트는 Windows만큼 빠르게 제공되지 않습니다.
귀하의 상황에서는 Hyper-V의 LAMP가 포함된 Windows 2008R2를 진지하게 고려할 것입니다. LAMP 서버의 Hyper-V 프로세스가 CPU 및 메모리 효율성이 매우 높다는 것을 알았습니다.