Cara menggunakan kill all proses php

Halo semuanya, pernahkah anda mengalami kondisi pada server MySQL dimana banyak proses yang berada dalam status sleep? . Beberapa hari yang lalu saya mengalami kondisi yang membuat operasional aplikasi web menjadi terhambat. Penumpukan proses yang berada dalam status sleep dapat meningkatkan penggunaan CPU dan sumber daya memori lainnya, sehingga memperlambat kinerja server. Proses dengan status tidur biasanya terjadi ketika sesi mysql tidak ditutup dengan benar. Banyak kasus yang dapat memicu hal tersebut, jika pada kasus di server saya yang memicu penumpukan proses status sleep adalah ketika aplikasi/program gagal mengolah data dari mysql, sehingga sesi mysql tidak dapat ditutup dengan baik dan menjadi status sleep proses. Jika hal seperti itu terjadi, kita perlu mematikan proses yang berstatus tidur. Jika tidak (secara default) proses dengan status tidur hanya akan ditutup setelah 28800 detik atau 8 jam. Untuk mempermudah, saya membuat script yang fungsinya mematikan proses sleep mysql secara otomatis yang saya jadwalkan di cronjob. Berikut cara membuatnya

 

1. Buat file sql untuk menghasilkan query kill mysql sleep process

Pertama-tama, kami membuat file sql untuk menghasilkan kueri untuk menghentikan proses tidur mysql, misalnya saya beri nama create_kill_query. sql (Anda bebas memberikan nama apa saja)

vim /usr/local/sbin/create_kill_query.sql

Untuk pathnya anda bisa custom dimana anda ingin meletakkannya, setelah itu isikan kode dibawah ini

select concat('KILL ',id,';') as '# kill this'
from information_schema.processlist
where Command = 'Sleep' and Time > '30';

2. Buat file shellscript untuk mematikan proses tidur mysql

Kedua, buat file shellscript, misalnya saya beri nama kill_mysql_sleep_process. sh (Anda bebas memberikan nama apa pun yang Anda inginkan)

vim /usr/local/sbin/kill_mysql_sleep_process.sh

Untuk pathnya anda bisa custom dimana anda ingin meletakkannya, setelah itu isikan kode dibawah ini

#!/bin/bash

USER="yourUser"
PASSWORD="yourPassword"
HOST="yourIpHost"

cat /dev/null > /usr/local/sbin/kill_query.sql &&
mysql -u $USER -p$PASSWORD -h $HOST < /usr/local/sbin/check_kill_query.sql > /usr/local/sbin/kill_query.sql &&
cat /usr/local/sbin/kill_sleep_query.sql > /var/log/mysql_kill_sleep_query.log &&
mysql -u $USER -p$PASSWORD -h $HOST < /usr/local/sbin/kill_query.sql &&
( echo "`date` === Sleep query has been killed" && echo "================================================") >> /var/log/mysql_kill_sleep_query.log 2>&1
_

Dalam skrip shell yang saya buat ini, saya mencatat prosesnya di log yang saya tempatkan di /var/log/mysql_kill_sleep_query.log. Anda dapat menguji terlebih dahulu dengan menjalankan skrip shell dengan sh /usr/local/sbin/kill_mysql_sleep_process.sh. Jika berhasil dan log sudah dibuat, Anda bisa melanjutkan ke langkah 3 untuk melampirkannya ke cronjob

 

3. Buat cronjob untuk dijalankan secara otomatis

Terakhir kita tinggal mengatur agar cronjob berjalan otomatis pada waktu yang kita inginkan, berikut saya berikan contoh agar cronjob berjalan otomatis setiap 30 menit sekali pada jam 08. 00 – 17. 00 setiap hari. Pertama, kita buka editor cronjob

cronjob -e

lalu jadwalkan waktu untuk menjalankan skrip shell seperti ini

*/30 08-17 * * * sh /usr/local/sbin/kill_mysql_sleep_process.sh

setelah itu simpan. Jadi setiap 30 menit sekali pada jam 8 pagi. 00 – 17. 00 cronjob akan menjalankan shellscript untuk menghentikan proses tidur mysql secara otomatis. Untuk aturan cronjob lainnya, Anda dapat membaca artikel saya tentang cronjob pada Aturan CronJob

Nah itulah sedikit informasi yang dapat saya bagikan, semoga informasi ini dapat bermanfaat, Terimakasih 😀

Penanganan sesi adalah konsep kunci dalam PHP yang memungkinkan informasi pengguna dipertahankan di semua halaman situs web atau aplikasi. Dalam posting ini, Anda akan mempelajari dasar-dasar penanganan sesi di PHP

Kami akan mulai dengan penjelasan tentang cara kerja sesi dan bagaimana kaitannya dengan cookie. Kemudian kita akan melihat beberapa cuplikan kode yang mendemonstrasikan cara bekerja dengan sesi. Anda akan belajar cara membuat dan menghancurkan sesi, dan cara mengubah variabel sesi

Tidak yakin apakah Anda memerlukan cookie atau variabel sesi? . Cookie adalah cara untuk menyimpan data tentang pengguna di komputer pengguna. Variabel sesi biasanya digunakan dalam aplikasi yang perlu melacak aktivitas pengguna. Cookie biasanya digunakan dalam aplikasi yang perlu menyimpan informasi tentang pengguna untuk satu situs

Anda juga dapat mempelajari tentang variabel sesi di postingan saya tentang penggunaan cookie di PHP

  • Cara menggunakan kill all proses php
    Cara menggunakan kill all proses php
    Cara menggunakan kill all proses php

    Cara Bekerja Dengan Cookie di PHP

    Cara menggunakan kill all proses php
    Cara menggunakan kill all proses php
    Cara menggunakan kill all proses php

    Sajal Soni

    16 Februari 2021

Apa itu Sesi di PHP?

Sesi adalah mekanisme untuk mempertahankan informasi di berbagai halaman web untuk mengidentifikasi pengguna saat mereka membuka situs atau aplikasi. Apakah Anda bertanya-tanya mengapa sesi diperlukan untuk situs web?

Protokol HTTP adalah protokol tanpa kewarganegaraan, yang berarti tidak mungkin server dapat mengingat pengguna tertentu di antara banyak permintaan. Misalnya, ketika Anda mengakses halaman web, server hanya bertanggung jawab untuk menyediakan konten halaman yang diminta. Jadi, ketika Anda mengakses halaman lain dari situs web yang sama, server web menginterpretasikan setiap permintaan secara terpisah, seolah-olah tidak terkait satu sama lain. Tidak ada cara bagi server untuk mengetahui bahwa setiap permintaan berasal dari pengguna yang sama

Diagram berikut menggambarkan protokol HTTP secara singkat

Cara menggunakan kill all proses php
Cara menggunakan kill all proses php
Cara menggunakan kill all proses php

Dalam model ini, jika Anda ingin menampilkan informasi khusus pengguna, Anda harus mengautentikasi pengguna di setiap permintaan. Bayangkan jika Anda harus mengetikkan username dan password di setiap halaman yang menampilkan informasi profil Anda. Ya, itu akan merepotkan dan tidak praktis sama sekali, dan di situlah sesi muncul

Sesi memungkinkan Anda untuk berbagi informasi di berbagai halaman dari satu situs atau aplikasi—sehingga membantu mempertahankan status. Ini memungkinkan server mengetahui bahwa semua permintaan berasal dari pengguna yang sama, sehingga memungkinkan situs untuk menampilkan informasi dan preferensi khusus pengguna

Mari kita segera melalui alur login umum untuk sebuah situs web guna memahami apa yang terjadi di balik layar

  1. Seorang pengguna membuka halaman login situs web
  2. Setelah mengirimkan formulir login, server di sisi lain mengautentikasi permintaan dengan memvalidasi kredensial yang dimasukkan
  3. Jika kredensial yang dimasukkan oleh pengguna valid, server akan membuat sesi baru. Server menghasilkan nomor acak unik, yang disebut id sesi. Itu juga membuat file baru di server yang digunakan untuk menyimpan informasi khusus sesi
  4. Selanjutnya, id sesi diteruskan kembali ke pengguna, bersama dengan sumber daya apa pun yang diminta. Di belakang layar, id sesi ini dikirim dalam cookie _______2_______47 di header respons
  5. Saat browser menerima respons dari server, ia menemukan header cookie _______2_______47. Jika cookie diizinkan oleh browser, itu akan menyimpan cookie
    3
    47 ini, yang menyimpan id sesi yang diteruskan oleh server
  6. Untuk permintaan selanjutnya, cookie
    3
    47 diteruskan kembali ke server. Saat server menemukan cookie _______2________47, server akan mencoba menginisialisasi sesi dengan id sesi tersebut. Itu dilakukan dengan memuat file sesi yang dibuat sebelumnya, selama inisialisasi sesi. Ini kemudian akan menginisialisasi variabel array super-global _______2_______52 dengan data yang disimpan dalam file sesi

Dengan cara ini, data pengguna disimpan di beberapa permintaan, dan pengguna tetap masuk selama satu sesi

Diagram berikut menggambarkan bagaimana protokol HTTP bekerja dengan sesi

Cara menggunakan kill all proses php
Cara menggunakan kill all proses php
Cara menggunakan kill all proses php

Sekarang setelah Anda melihat pengantar singkat tentang cara kerja sesi, kami akan membuat beberapa contoh praktis untuk menunjukkan cara membuat dan memanipulasi variabel sesi

Cara Memulai Sesi

Pada bagian ini, kita akan membahas cara memulai sesi di PHP

Setiap kali Anda ingin berurusan dengan variabel sesi, Anda perlu memastikan bahwa sesi sudah dimulai. Ada beberapa cara untuk memulai sesi di PHP

Gunakan Fungsi 3_53

Ini adalah metode yang paling sering Anda lihat, di mana sesi dimulai oleh fungsi _______2_______53

1

2
// start a session

3
session_start();
4
 
5
// manipulate session variables


0

1

Yang penting adalah fungsi

3
_53 harus dipanggil di awal skrip, sebelum keluaran apa pun dikirim ke browser. Jika tidak, Anda akan menemukan kesalahan ________2______56 yang terkenal

Mulai Sesi Secara Otomatis

Jika ada kebutuhan untuk menggunakan sesi di seluruh aplikasi Anda, Anda juga dapat ikut serta untuk memulai sesi secara otomatis tanpa menggunakan fungsi _______2_______53

Ada opsi konfigurasi di php. file ini yang memungkinkan Anda memulai sesi secara otomatis untuk setiap permintaan—

3
58. Secara default, ini disetel ke _______2_______59, dan Anda dapat menyetelnya ke _______2_______60 untuk mengaktifkan fungsi mulai otomatis

1

3

Di sisi lain, jika Anda tidak memiliki akses ke php. file ini, dan Anda menggunakan server web Apache, Anda juga dapat menyetel variabel ini menggunakan. file htaccess

1

5

Jika Anda menambahkan baris di atas di. htaccess, yang akan memulai sesi secara otomatis di aplikasi PHP Anda

Cara Mendapatkan Id Sesi

Seperti yang telah kita bahas sebelumnya, server membuat nomor unik untuk setiap sesi baru. Jika Anda ingin mendapatkan session id, Anda dapat menggunakan fungsi _______2_______61, seperti yang ditunjukkan pada cuplikan berikut

1

2
session_start();
3
2
1
4

1

Itu akan memberi Anda id sesi saat ini. Fungsi

3
_61 menarik karena dapat mengambil satu argumen—id sesi. Jika Anda ingin mengganti id sesi yang dihasilkan sistem dengan id Anda sendiri, Anda dapat memberikannya ke argumen pertama dari fungsi _______2_______61

1

2
2
7
3
session_start();
4

1

Penting untuk diperhatikan bahwa fungsi _______2________61 harus ditempatkan sebelum panggilan _______2_______53 saat Anda ingin memulai sesi dengan id sesi khusus

Cara Membuat Variabel Sesi

Pada bagian ini, kita akan mengeksplorasi cara menginisialisasi variabel sesi di PHP

Seperti yang telah kita bahas sebelumnya, setelah sesi dimulai, array super-global

3
52 diinisialisasi dengan informasi sesi yang sesuai. Secara default, ini diinisialisasi dengan larik kosong, dan Anda dapat menyimpan lebih banyak informasi dengan menggunakan key-value pair

Mari kita lihat skrip contoh berikut yang menunjukkan cara menginisialisasi variabel sesi

1

2
// start a session

3
session_start();
4
 
5
3
1

0
3
3
3
4
3
5
3
6
 
3
8
3
9
session_start();
0
session_start();
1
session_start();
15_______1
session_start();
1________11

Seperti yang Anda lihat, kami telah memulai sesi di awal skrip menggunakan fungsi _______2_______53. Setelah itu, kami menginisialisasi beberapa variabel sesi. Akhirnya, kami telah mengakses variabel tersebut menggunakan

3
52 super-global

Ketika Anda menyimpan data dalam sesi menggunakan _______2_______52 super-global, akhirnya disimpan dalam file sesi yang sesuai di server yang dibuat saat sesi dimulai. Dengan cara ini, data sesi dibagikan ke beberapa permintaan

Seperti yang telah kita diskusikan, informasi sesi dibagikan di seluruh permintaan, dan dengan demikian variabel sesi yang diinisialisasi pada satu halaman juga dapat diakses dari halaman lain, hingga sesi berakhir. Umumnya, sesi berakhir saat browser ditutup

Cara Memodifikasi dan Menghapus Variabel Sesi

Anda dapat memodifikasi atau menghapus variabel sesi yang dibuat sebelumnya dalam aplikasi dengan cara yang sama seperti variabel PHP biasa

Mari kita lihat bagaimana memodifikasi variabel session

1

2
session_start();
3
 
4
4
3
5
4
5

0
4
7
3
4
4
9
3
6
 
1
3
8
4
5
session_start();
0
 
5
session_start();
2
4
9
session_start();
4
 
5
0
5
1
5
2

1

Dalam skrip di atas, kami telah memeriksa apakah variabel _______2_______70 disetel di tempat pertama. Jika tidak disetel, kami akan menyetelnya ke _______2_______60, jika tidak, kami akan menambahnya dengan _______2_______60. Jadi, jika Anda me-refresh halaman ini beberapa kali, Anda akan melihat bahwa penghitung bertambah satu setiap kali.  

Di sisi lain, jika Anda ingin menghapus variabel sesi, Anda dapat menggunakan fungsi _______2_______73, seperti yang ditunjukkan pada cuplikan berikut

1

2
// start a session

3
session_start();
4
 
5
// manipulate session variables

3

0
3
3
3
4
 
3
6
// manipulate session variables

9
3
8_______11_____1_____5______1______1______1

Dengan demikian, Anda tidak dapat lagi mengakses variabel _______2________74 karena telah dihapus oleh fungsi _______2_______73. Jadi begitulah cara Anda dapat mengubah informasi sesi

Cara Menghancurkan Sesi

Di bagian ini, kita akan melihat bagaimana Anda dapat menghancurkan sebuah sesi. Pada bagian sebelumnya, kita membahas fungsi _______2________73, yang digunakan jika Anda ingin menghapus variabel sesi tertentu. Di sisi lain, jika Anda ingin menghapus semua data terkait sesi sekaligus, Anda dapat menggunakan fungsi _______2_______77

Fungsi

3
_77 menghapus semua yang disimpan di sesi saat ini. Karena itu, itu tidak menghapus variabel global yang terkait dengan sesi atau menghapus cookie sesi

Jadi jika Anda menggunakan fungsi _______2________77 untuk mengeluarkan pengguna, Anda harus menghapus variabel

3
52 dan menghapus cookie sesi juga. Jadi, cara yang disarankan untuk menghancurkan sesi sepenuhnya adalah

1

2
// start a session

3
session_start();
4
 
5

13

0
 
3
4

17
3
6

19
3
8

21
session_start();
0

23
session_start();
2
4
9
session_start();
4
 
5
0

29
5
2

1

Penangan Sesi

Sejauh ini, kita telah membahas bagaimana Anda dapat melakukan operasi yang berbeda dengan variabel sesi. Pada bagian ini, kita akan membahas apa itu session handler dan bagaimana Anda dapat menggunakannya

Handler sesi PHP adalah mekanisme yang menginstruksikan PHP bagaimana seharusnya mengelola sesi. Penangan sesi default adalah sistem file, dan itu berarti bahwa PHP menyimpan sesi pada disk. Pada dasarnya, ini adalah file kecil di server yang diasosiasikan dengan id sesi unik. Itu adalah id yang sama yang disimpan dalam cookie sesi di browser klien

Penangan sesi default di PHP memberi Anda semua fitur yang diperlukan, tetapi terkadang Anda ingin menyimpan sesi secara berbeda. Misalnya, Anda mungkin ingin mengelola sesi di database, Redis, atau penyimpanan lainnya. Dalam hal ini, Anda perlu menerapkan penangan sesi khusus yang menggantikan perilaku default

Untuk memahami cara kerja penangan sesi khusus, kami akan membahas secara singkat bagaimana Anda dapat mengimplementasikan penangan sesi database yang mengelola sesi dalam database MySQL

Bagaimana Menerapkan Handler Sesi Database

Dalam siklus hidup sesi PHP, ada tahapan yang berbeda seperti buka, baca, tulis, dan tutup. Selain itu, ada dua tahap lagi. menghancurkan dan pengumpulan sampah. Jadi, saat Anda menerapkan penangan sesi khusus, Anda harus menangani setiap tahapan ini untuk mengelola data sesi dengan benar

Ada dua cara Anda dapat menerapkan penangan sesi khusus, Anda dapat menentukan fungsi panggilan balik untuk berbagai tahapan dalam siklus hidup sesi atau Anda dapat menulis kelas yang mengimplementasikan antarmuka

3
81. Dalam kedua kasus tersebut, Anda perlu menggunakan fungsi _______2________82 untuk menginisialisasi pengendali sesi khusus Anda. Dalam kasus kita, kita akan menggunakan implementasi interface _______2______81

Dalam contoh kami, kami akan menyimpan sesi di database MySQL. Jadi mari buat tabel yang menyimpan data sesi dengan menggunakan cuplikan berikut

1

33
2

35
3

37
4

39
5

41

0

43

Selanjutnya, mari kita lihat bagaimana tampilan session handler custom database kita

1

2

47
3
4
5
4

51
5

0

54
3
4

56
3
6

58
3
8

60
session_start();
0
session_start();
2

63
session_start();
4

56
5
0

67
5
2

69

70

71

72

73

74

75

76

60

78

79

80

81

56

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

Kelas penangan sesi khusus kami _______2________84 mengimplementasikan antarmuka _______2_______81. Oleh karena itu, ia harus mengimplementasikan metode yang dideklarasikan di antarmuka _______2______81. Kita akan melihat metode ini satu per satu untuk memahami cara kerjanya masing-masing

1

54
2

56
3

58
4

60

Pertama, untuk menggunakan kode ini, pastikan untuk mengganti _______2_______87, _______2_______88, dan placeholder lainnya dengan nilai aktual dalam metode _______2_______89

1

63
2

56
3

67
4

69
5

71

0

73
3
4

7_____11_______5____1

Saat sesi dimulai, metode

3
_90 dipanggil. Ini mengembalikan _______2________91 jika koneksi database berhasil. Jika ada masalah saat menyiapkan koneksi database, ia mengembalikan
3
92

1

80
2

56
3

84
4

86
5

88

0

90
3
4

92
3
6

94
3
8

96
session_start();
0
session_start();
2

99
session_start();
4
2
01
5
0
2
03
5
2

75

70

60

Selanjutnya, PHP memanggil metode _______2________93 untuk membaca data sesi. Metode

3
_93 menerima id sesi sebagai argumen pertama. Kami akan memeriksa apakah ada entri yang tersedia untuk id sesi ini di tabel _______2_______95. Jika ada, kami akan mengembalikan data sesi;

1
2
10
2

56
3

84
4
2
16
5
2
18

0

90
3
4

96
3
6
3
8

69
session_start();
0
2
01
session_start();
2

73
session_start();
4

75
5
0

60

Ketika PHP perlu menyimpan atau menutup sesi, itu memanggil metode _______2_______96. Ini digunakan untuk menulis data sesi dalam database. Kami telah menggunakan sintaks _______2________97 untuk memastikan bahwa jika ada entri, itu akan diperbarui;

1
2
91
2

56
3
2
95
4

60

Metode

3
_98 dipanggil setelah metode sesi
3
96 dipanggil. Ia bekerja mirip dengan destruktor di kelas. Dalam kasus kami, tidak ada hal khusus yang perlu dilakukan dalam metode
3
98

1
2
36
2

56
3

84
4
2
42
5

88

0

90
3
4

96
3
6
3
8

69
session_start();
0
2
01
session_start();
2

73
session_start();
4

75
5
0

60

Metode

session_start();
_01 dipanggil saat sesi dihancurkan dengan fungsi
3
77 atau
session_start();
03. Dalam metode ini, data sesi dihapus dari database jika ada

1
2
62
2

56
3
2
66
4
5

84

0
2
71
3
4
2
73
3
6

90
3
8

96
session_start();
0
session_start();
2

69
session_start();
4
2
01
5
0

73
5
2

75

70

60

Saat PHP menjalankan pengumpul sampah secara berkala, metode

session_start();
04 dipanggil. Variabel
session_start();
_05 memegang nilai opsi konfigurasi
session_start();
06 di php. ini filenya. Dalam metode ini, kami akan menghapus semua sesi yang kedaluwarsa sebagai bagian dari proses pengumpulan sampah

Menggunakan Kelas Handler Sesi MySQL

Sekarang, mari kita lihat bagaimana menggunakan kelas handler _______2______84

1
3
40
2
3
42
3
session_start();
4
3
46

Seperti yang Anda lihat, kita hanya perlu menginisialisasi kelas

3
84 dan meneruskannya ke fungsi _______2_______82 untuk menginstruksikan PHP bahwa ia perlu menggunakan kelas _______2_______84 untuk manajemen sesi. Selanjutnya, kami memanggil fungsi _______2________53 untuk memulai sesi. Terakhir, kami telah menginisialisasi variabel sesi untuk tujuan pengujian

Jika semuanya berjalan dengan baik, Anda akan melihat entri sesi di tabel _______15_______12 seperti yang ditunjukkan pada tangkapan layar berikut

Cara menggunakan kill all proses php
Cara menggunakan kill all proses php
Cara menggunakan kill all proses php

Dan dengan itu, Anda telah membuat penangan sesi khusus yang berfungsi yang mengelola sesi dalam database

Kesimpulan

Pada artikel ini, kami telah menjelajahi dasar-dasar penanganan sesi di PHP. Ini adalah konsep utama yang memungkinkan Anda menyimpan informasi di seluruh halaman web

Di paruh pertama artikel, kami membahas konsep dasar sesi, dan selanjutnya kami membuat beberapa contoh PHP untuk mendemonstrasikan bagaimana Anda dapat membuat dan menghancurkan sesi serta memanipulasi variabel sesi.