こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

PHPorPythonでマルチコアCPU対応したい

こんにちは、
PHPとPythonで、それぞれi7 や AMDの A10 CPU、APUのマルチコア生かすWEBサーバープログラムを出来るようになる為には、マルチプロセスが良いか?意識的にマルチスレッドのライブラリを使用しなければならないでしょうか? 例えば、ツイッターやFacebook等の様に同時に多数のアクセスに耐えるWEBサイトを作るノウハウが知りたいです。

また、複数のサーバーで一つのWEBサイトを運用するには、マルチスレッドのロック機能が理解できれば、十分運用出来ますでしょうか?この場合は、マルチプロセスでは、対応できないですか?

PHPとPythonそれぞれのノウハウを得たいです。
多少なりとも解る方がいらっしゃいましたら、
何卒宜しくお願い致します。

投稿日時 - 2015-06-30 15:23:40

QNo.9003586

困ってます

質問者が選んだベストアンサー

> PHPのマルチスレッドAPIが使えそうだと思っていました。使うと何か問題があるのでしょうか?とりあえずマルチプロセスに慣れて見ようと思います。

PHPのプロセスって立ち上げっぱなしにすると不安定になりやすいんですよね。
改善はされているんでしょうが、立ち上げっぱなしで待ってると勝手に落ちたり、パフォーマンスが下がると言った経験が多いので、処理が終わる度にプロセスが終了してくれる方が安定稼動してくれると言う印象を持っています。

言語の設計自体がプロセス単位で動作するように考えられているものを、無理やりマルチスレッドにしてもメリットが少ない気がしますね。

投稿日時 - 2015-06-30 17:48:12

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.1

Python は使って無いので PHP についてだけ。

PHPは基本的にマルチプロセスで動作するよう設計されており、マルチスレッドでは動作しません。(一部ライブラリが存在しますが)
また、基本的には1つのアクセスに対して1つのプロセスが立ち上がって、応答を返したらプロセスが終了するという動作ですから、大量にアクセスがあれば沢山プロセスが立ち上がってCPUやメモリといったリソースを喰いまくりますので、マルチコアを生かして動きます。

複数のサーバで一つのサービスを提供する場合は、できる限り各々の処理が単独で動作しお互いに影響しあわないよう疎結合になるような設計をする方がいいんじゃないでしょうか。
そうする事でスケールアウトさせて処理能力を増やしやすくなります。

投稿日時 - 2015-06-30 15:56:15

お礼

PHPのマルチスレッドAPIが使えそうだと思っていました。使うと何か問題があるのでしょうか?とりあえずマルチプロセスに慣れて見ようと思います。

複数サーバーについて考え方の参考になりました。
情報提供ありがとうございました。

投稿日時 - 2015-06-30 16:59:37

-広告-
-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-