フレッシュラウンドの PHP 面接の質問の概要

藏色散人
リリース: 2023-04-10 11:56:01
転載
3468 人が閲覧しました

関連おすすめ: 「2021 PHP 面接の質問まとめ (集)

#PHP 面接の概要問題

ガベージ コレクションのメカニズム

各 PHP 変数は、zval という構造体に存在します。変数の型と値に加えて、is_ref ( = true ポインター変数、-false 通常変数)、refcount (この変数を指す番号)、要素を削除すると refcount=0 が発生し、この変数はガベージ コレクション メカニズムによって削除されます。

次の操作により refcount が発生します。 to Never be は 0 で、メモリ オーバーフローが発生する可能性があります

$a = array( 'one' );
$a[] =& $a;
unset($a);
ログイン後にコピー

refcount が 1 つ減少するたびに、変数はバッファ領域に配置され、定期的なリサイクル処理を待ちます。ルート バッファ領域がいっぱいになるたび (デフォルトは 10000) )、実行されます。 リサイクル アルゴリズム

FPMチューニング

pm = dynamic : 灵活模式,子进程的数量是根据以下指令来动态生成的,默认是这个模式:
pm.max_children,//最大子进程数
pm.start_servers,//初始化启动进程数
pm.min_spare_servers,//最低闲置进程数
pm.max_sqare_servers//最高闲置进程数
ログイン後にコピー

pm = オンデマンド: デッド フィッシュ モード、このモードはリクエストが到着した後にのみ子プロセスを開始します。ほぼ毎回 ワーカーの起動を待機する時間は、仮想ホスト モードの方が適しています pm.process_idle_timeout は数秒後に子プロセスを強制終了します

pm = static: 最大馬力モード、子プロセスの数は次のように決定されます。 pm.max_children コマンド。常に最大の子プロセスとして動作し、多くのメモリを消費しますが、応答は非常に高速です。サーバーのメモリが非常に大きい場合は、これを使用できます。サーバーのメモリが 8G を超える場合は、 1 つのプロセスは 20M として計算され、100 プロセスの合計はわずか 2G です

もっとログを書き込んでください、それは正しいです


遅いログ

slowlog = /usr/local/var/log/php-fpm.log.slow
request_slowlog_timeout = 15s
ログイン後にコピー

エラー ログ

error_log =  /usr/local/var/log/php-fpm.log
ログイン後にコピー

アクセス ログ

access.log = log/$pool.access.log
ログイン後にコピー
OPCACHE 代码=>AST抽象语法树=>生成opcode缓存 之后还可以优化
opcache.enable=1    //默认关闭
opcache.memory_consumption=512//最大内存空间,单位MB
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531//缓存脚本数量
ログイン後にコピー
opcache.validate_timestamps=0//0不校验文件变动,文件改动,需要手动清除opcache
opcache.validate_timestamps=0//1校验文件变动,
opcache.revalidate_freq=10 //校验文件的时间间隔
opcache.save_comments=1//保留注释,?注解要用到?
opcache.fast_shutdown=0
##PHP7.4+ 预加载文件
opcache.preload=/home/rawphp/preload.php
opcache.preload_user=odin
ログイン後にコピー

CGI、FASTCGI、PHPFPM、PHPCGI

CGI は、サーバーによって動的スクリプトに送信されるデータの形式を指定するプロトコルです

FASTCGI は CGI のパフォーマンスを向上させ、マスター プロセスを開始し、php.ini ファイルを解析します。リクエストが受信されると、ワーカー プロセスが直接コピーされ、リクエストは即座に処理され、pmパフォーマンスを向上させるために、.start_servers ワーカーを事前に開始することもできます。

PHPFPM は、FASTCGI を実装するプログラムです。

PHPCGI は、単にリクエストを解析して結果を返すだけの CGI ハンドラーです。プロセス管理などの高度な機能はありません。

以上がフレッシュラウンドの PHP 面接の質問の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート